Công cụ
- photoshop
- balsamiq
- sketch app (cho mac)







<li class="active"><a href="#">Album ảnh <span class="sr-only">(current)</span></a></li>
thẻ <span class="sr-only"> là dùng cho trang web xem ở chế độ dành cho người khuyết tật, ta cũng nên cho vào.<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
data-toggle="modal" data-target="#myModal" (là id của modal đó)
$('#myModal').modal(options)
Nếu tôi viết CSS cho Desktop trước, code của tôi sẽ trông như sau:.content {
/* Style cho màn hình Desktop */
float: left;
width: 60%;
/* Style lại cho màn hình Mobile */
@media (max-width: 800px) {
float: none;
width: 100%;
}
}
Còn nếu viết CSS cho Mobile trước thì sẽ như sau:.content {
/* Mặc định chiều rộng của thẻ div là 100% nên không cần viết thêm gì */
/* Viết lại style cho Desktop */
@media (min-width: 800px) {
float: left;
width: 60%;
}
}
Như vậy, viết theo kiểu Mobile first thì chúng ta đã
tiết kiệm được 2 dòng code, và với 1 trang web càng lớn thì sẽ tiết
kiệm được càng nhiều (bởi giao diện trên Desktop thường sẽ rất phức tạp
so với giao diện mobile). Do đó chúng ta nên viết theo kiểu này, đặc
điểm của nó là sử dụng đa số media feature min-width
(đa số thôi, còn trong một số trường hợp chúng ta sẽ dùng các kiểu
feature khác sao cho phù hợp và tối ưu nhất, code ngắn nhất).| window.innerWidth | Lấy chiều rộng bên trong trình duyệt (phần hiển thị trang web, không tính thanh cuộn scroll bar) |
| window.outerWidth | Lấy chiều rộng của toàn bộ trình duyệt |
| window.innerHeight | Lấy chiều cao bên trong trình duyệt (phần hiển thị trang web, không tính thanh cuộn scroll bar) |
| window.outerHeight | Lấy chiều cao của toàn bộ trình duyệt |
( new Foo ).__proto__ === Foo.prototype;
( new Foo ).prototype === undefined;
prototype is not available on the instances themselves (or other objects), but only on the constructor functions.
document.head.ten_thehoặc
document.body.tên_thẻ
document.head.childrentrả về 1 mảng các con trực tiếp của thằng body
document.body.childrenNgoài ra, có thể lấy thằng con nhưng nó sẽ trả về tất cả các node:
element.childNodes()
obj.parentNode
document.write("<h1>Bài tập</h1>");
x = 5 + 4;
console.log(x);
var string1 = "Let's go!";
var string2 = '<a href="#">Link</a>';
var string3 = 'Let\'s go!';
var name = "robin".toUpperCase();
x = null;
var arr = [1, 2, 3];
var obj = { name: "Huy" };
var x = Array.isArray(arr);
var y = Array.isArray(obj);
var x = 1;
var y = x; // y copy giá trị của x nên y có giá trị bằng 1
x = 2; // thay đổi giá trị của x thì y vẫn có giá trị bằng 1
var a = [1,2,3];
var b = a; // b tham chiếu đến a
a[0] = 10; // thay đổi giá trị a[0], do cả 2 biến đều tham chiếu đến 1 mảng nên có giá trị giống nhau là [10,2,3]. Do đó b[0] có giá trị bằng 10
b[1] = 11; // thay đổi giá trị b[1] thì cả 2 biến vẫn có giá trị giống nhau là [10,11,3]
var x = [1,2,3];
var y = x.slice();
function person(name, age, gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
var personA = new person('Ford Happy', 16, 'Male');
var personB = new person('Lora Romey', 10, 'Female');
for(var i =0; i < arr.length; i++){
document.write(arr[i]);
}
for(i in a){
document.write(arr[i]);
}
for (var p in obj){2=='2' sẽ trả về true
document.write(p);
document.write(obj[p]);
}
var ten_bien;gán giá trị
ten_bien = giá trịcác kiểu giá trị:
number, string, boolean, array, object
var mang = [];object
var doi_tuong={};function:
function ten_ham(){}break: thoát khỏi câu lệnh lặp
var ten_ham = function(){};
doi_tuong.phuong_thuc=function(){};
Đây là icon cốc bia <i class="fa fa-beer"></i> <br/>
Đây là icon quyển sách <i class="fa fa-book"></i>
p {
font-family: "Helvetica Neue";
}
/* Sử dụng font Helvetica Neue, nếu trình duyệt hoặc hệ điều hành không hỗ trợ thì chuyển qua font Helvetica, Arial hoặc sans-serif */
p {
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
}
/* Định nghĩa 1 font tên là robin, trỏ đường dẫn đến file font là special_font.woff */
@font-face {
font-family: robin;
src: url(special_font.woff);
}
/* Thay đổi font cho thẻ p */
p {
font-family: robin;
}
@font-face {
font-family: "my font";
src: url('webfont.eot'); /* IE9 Compat Modes */
src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('webfont.woff2') format('woff2'), /* Super Modern Browsers */
url('webfont.woff') format('woff'), /* Pretty Modern Browsers */
url('webfont.ttf') format('truetype'), /* Safari, Android, iOS */
url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}
