You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<sup>[back to table of contents](#table-of-contents)</sup>
426
+
427
+
428
+
### Style "Default" Links
429
+
430
+
Thêm kiểu cho các liên kết "default":
431
+
432
+
```css
433
+
a[href]:not([class]) {
434
+
color: #008000;
435
+
text-decoration: underline;
436
+
}
437
+
```
438
+
439
+
Giờ đây, các liên kết được chèn qua CMS, thường không có thuộc tính `class`, sẽ có sự phân biệt mà không ảnh hưởng chung đến tầng.
440
+
441
+
<sup>[back to table of contents](#table-of-contents)</sup>
442
+
443
+
444
+
### Consistent Vertical Rhythm
445
+
446
+
Sử dụng bộ chọn đa năng (`*`) trong một phần tử để tạo nhịp điệu dọc nhất quán:
447
+
448
+
```css
449
+
.intro>* {
450
+
margin-bottom: 1.25rem;
451
+
}
452
+
```
453
+
454
+
Nhịp điệu dọc nhất quán mang lại tính thẩm mỹ trực quan giúp nội dung dễ đọc hơn nhiều.
455
+
456
+
<sup>[back to table of contents](#table-of-contents)</sup>
457
+
458
+
459
+
### Intrinsic Ratio Boxes
460
+
461
+
Để tạo một hộp có tỷ lệ nội tại, tất cả những gì bạn cần làm là áp dụng phần đệm trên cùng hoặc dưới cùng cho div:
462
+
463
+
```css
464
+
.container {
465
+
height: 0;
466
+
padding-bottom: 20%;
467
+
position: relative;
468
+
}
469
+
470
+
.containerdiv {
471
+
border: 2pxdashed#ddd;
472
+
height: 100%;
473
+
left: 0;
474
+
position: absolute;
475
+
top: 0;
476
+
width: 100%;
477
+
}
478
+
```
479
+
480
+
Sử dụng 20% cho phần đệm làm cho chiều cao của hộp bằng 20% chiều rộng của nó. Bất kể chiều rộng của khung nhìn, div con sẽ giữ nguyên tỷ lệ co của nó (100% / 20% = 5: 1).
<sup>[back to table of contents](#table-of-contents)</sup>
485
+
486
+
487
+
### Hình ảnh bị vỡ
488
+
489
+
Làm cho hình ảnh bị hỏng trở nên đẹp hơn về mặt thẩm mỹ với một chút CSS:
490
+
491
+
```css
492
+
img {
493
+
display: block;
494
+
font-family: sans-serif;
495
+
font-weight: 300;
496
+
height: auto;
497
+
line-height: 2;
498
+
position: relative;
499
+
text-align: center;
500
+
width: 100%;
501
+
}
502
+
```
503
+
504
+
Bây giờ, hãy thêm các quy tắc phần tử giả để hiển thị thông báo người dùng và tham chiếu URL của hình ảnh bị hỏng:
505
+
506
+
```css
507
+
img::before {
508
+
content: "We're sorry, the image below is broken :(";
509
+
display: block;
510
+
margin-bottom: 10px;
511
+
}
512
+
513
+
img::after {
514
+
content: "(url: "attr(src) ")";
515
+
display: block;
516
+
font-size: 12px;
517
+
}
518
+
```
519
+
520
+
Tìm hiểu thêm về cách tạo kiểu cho mẫu này trong [Ire Aderinokun](https://github.com/ireade/)'s [original post](http://bitsofco.de/styling-broken-images/).
521
+
522
+
<sup>[back to table of contents](#table-of-contents)</sup>
523
+
524
+
525
+
### Dùng `rem` cho toàn cục; dùng `em` cho cục bộ
526
+
527
+
Sau khi đặt kích thước phông chữ cơ sở ở gốc (`html { font-size: 100%; }`), đặt kích thước phông chữ cho các yếu tố văn bản thành `em`:
528
+
529
+
```css
530
+
h2 {
531
+
font-size: 2em;
532
+
}
533
+
534
+
p {
535
+
font-size: 1em;
536
+
}
537
+
```
538
+
539
+
Sau đó, đặt kích thước phông chữ cho mô-đun thành `rem`:
540
+
541
+
```css
542
+
article {
543
+
font-size: 1.25rem;
544
+
}
545
+
546
+
aside.module {
547
+
font-size: .9rem;
548
+
}
549
+
```
550
+
551
+
Giờ đây, mỗi mô-đun trở nên được chia nhỏ và dễ tạo kiểu hơn, dễ bảo trì hơn và linh hoạt hơn.
552
+
553
+
<sup>[back to table of contents](#table-of-contents)</sup>
554
+
555
+
556
+
### Ẩn các video tự động phát không bị tắt tiếng
557
+
558
+
Đây là một thủ thuật tuyệt vời cho một biểu định kiểu người dùng tùy chỉnh. Tránh làm người dùng quá tải với âm thanh từ video tự động phát khi tải trang. Nếu âm thanh không bị tắt, không hiển thị video:
559
+
560
+
```css
561
+
video[autoplay]:not([muted]) {
562
+
display: none;
563
+
}
564
+
```
565
+
566
+
Một lần nữa, chúng ta đang tận dụng lợi thế của việc sử dụng [`:not()`](#use-not-to-applyunapply-borders-on-navigation) pseudo-class.
567
+
568
+
<sup>[back to table of contents](#table-of-contents)</sup>
569
+
570
+
571
+
### Dùng `:root` cho Flexible Type
572
+
573
+
Kích thước phông chữ loại trong bố cục đáp ứng có thể điều chỉnh theo từng chế độ xem. Bạn có thể tính toán kích thước phông chữ dựa trên chiều cao và chiều rộng của khung nhìn bằng cách sử dụng `:root`:
574
+
575
+
```css
576
+
:root {
577
+
font-size: calc(1vw+1vh+.5vmin);
578
+
}
579
+
```
580
+
581
+
Bây giờ bạn có thể sử dụng `root em` đơn vị dựa trên giá trị được tính bằng `:root`:
<sup>[back to table of contents](#table-of-contents)</sup>
592
+
593
+
594
+
### Đặt `font-size` trong Form Elements để có một trải nghiệm mobile tốt hơn
595
+
596
+
Để tránh các trình duyệt di động (iOS Safari, v.v.) phóng to các phần tử biểu mẫu HTML khi `<select>` thả xuống được nhấn, thêm `font-size` quy tắc bộ chọn:
597
+
598
+
```css
599
+
input[type="text"],
600
+
input[type="number"],
601
+
select,
602
+
textarea {
603
+
font-size: 16px;
604
+
}
605
+
```
606
+
607
+
:dancer:
608
+
609
+
<sup>[back to table of contents](#table-of-contents)</sup>
610
+
611
+
612
+
### Dùng Pointer Events để kiểm soát mouse events
613
+
614
+
[Pointer events](https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events) cho phép bạn chỉ định cách con chuột tương tác với phần tử mà nó chạm vào. Để tắt sự kiện con trỏ mặc định trên một nút, ví dụ:
615
+
616
+
```css
617
+
.button-disabled {
618
+
opacity: .5;
619
+
pointer-events: none;
620
+
}
621
+
```
622
+
623
+
Nó thật đơn giản:
624
+
625
+
<sup>[back to table of contents](#table-of-contents)</sup>
626
+
627
+
628
+
### Đặt `display: none` trên ngắt dòng được sử dụng làm khoảng cách
629
+
630
+
Như [Harry Roberts pointed out](https://twitter.com/csswizardry/status/1170835532584235008),điều này có thể giúp ngăn người dùng CMS sử dụng thêm dấu ngắt dòng cho khoảng cách:
631
+
632
+
```css
633
+
br+br {
634
+
display: none;
635
+
}
636
+
```
637
+
638
+
<sup>[back to table of contents](#table-of-contents)</sup>
639
+
640
+
641
+
## Support
642
+
643
+
versions hiện tại Chrome, Firefox, Safari, Opera, Edge, and IE11.
0 commit comments