4
4
5
5
# CSS 专业的技巧 [ ![ Awesome] ( https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg )] ( https://github.com/sindresorhus/awesome )
6
6
7
- 提示的集合,以帮助把你的CSS技巧亲 。
7
+ 提示的收集,以帮助提升你的CSS技巧 。
8
8
9
9
> 对于其他大名单退房 [ @sindresorhus ] ( https://github.com/sindresorhus/ ) 的策展的名单 [ 真棒名单] ( https://github.com/sindresorhus/awesome/ ) .
10
10
20
20
<div id =" protips " ></div >
21
21
## 专业的技巧
22
22
23
- 1 . [ 使用 ` :not() ` 选择器决定导航菜单是否显示边框 ] ( #use-not-to-applyunapply-borders-on-navigation )
24
- 1 . [ 给 ` body ` 元素加行高 ] ( #add-line-height-to-body )
23
+ 1 . [ 使用 : not () 选择器来决定表单是否显示边框 ] ( #use-not-to-applyunapply-borders-on-navigation )
24
+ 1 . [ 为 body 元素添加行高 ] ( #add-line-height-to-body )
25
25
1 . [ 垂直居中任何元素] ( #vertically-center-anything )
26
26
1 . [ 逗号分隔的列表] ( #comma-separated-lists )
27
- 1 . [ 使用负的 ` nth-child ` 选择元素 ] ( #select-items-using-negative-nth-child )
27
+ 1 . [ 使用负的 ' nth-child' 来选择元素 ] ( #select-items-using-negative-nth-child )
28
28
1 . [ 使用 SVG 图标] ( #use-svg-for-icons )
29
- 1 . [ 使用 " 形似猫头鹰" 的选择器] ( #use-the-lobotomized-owl-selector )
30
- 1 . [ 使用 ` max-height ` 实现纯 CSS 滑块 ] ( #use-max-height-for-pure-css-sliders )
31
- 1 . [ 继承 ` box-sizing ` ] ( #inherit-box-sizing )
32
- 1 . [ 格子等宽的表格 ] ( #equal-width-table-cells )
33
- 1 . [ 利用 Flexbox 去除多余的 Margin ] ( #get-rid-of-margin-hacks-with-flexbox )
34
- 1 . [ 利用属性选择器选择空链接 ] ( #use-attribute-selectors-with-empty-links )
35
- 1 . [ 给"默认" 链接定义样式] ( #style-default-links )
36
- 1 . [ 垂直节奏一致性 ] ( #consistent-vertical-rhythm )
29
+ 1 . [ 使用 「 形似猫头鹰」 的选择器] ( #use-the-lobotomized-owl-selector )
30
+ 1 . [ 使用 ' max-height' 来建立纯 CSS 的滑块 ] ( #use-max-height-for-pure-css-sliders )
31
+ 1 . [ 继承 ' box-sizing' ] ( #inherit-box-sizing )
32
+ 1 . [ 创造格子等宽的表格 ] ( #equal-width-table-cells )
33
+ 1 . [ 利用 Flexbox 去除多余的外边距 ] ( #get-rid-of-margin-hacks-with-flexbox )
34
+ 1 . [ 利用属性选择器来选择空链接 ] ( #use-attribute-selectors-with-empty-links )
35
+ 1 . [ 给「预设」 链接定义样式] ( #style-default-links )
36
+ 1 . [ 一致的垂直节奏 ] ( #consistent-vertical-rhythm )
37
37
1 . [ 内在比例盒] ( #intrinsic-ratio-boxes )
38
- 1 . [ 风格破碎的形象 ] ( #style-broken-images )
39
- 1 . [ 使用 ` rem ` 全球上浆; 使用 ` em ` 本地浆纱 ] ( #use-rem-for-global-sizing-use-em-for-local-sizing )
40
- 1 . [ 隱藏自動播放的影片,沒有靜音 ] ( #hide-autoplay-videos-that-arent-muted )
41
- 1 . [ 使用 ` :root ` 柔性型 ] ( #use-root-for-flexible-type )
38
+ 1 . [ 为破碎图象定义样式 ] ( #style-broken-images )
39
+ 1 . [ 用 rem 来调整全局大小;用 em 来调整局部大小 ] ( #use-rem-for-global-sizing-use-em-for-local-sizing )
40
+ 1 . [ 隐藏没有静音、自动播放的影片 ] ( #hide-autoplay-videos-that-arent-muted )
41
+ 1 . [ 使用选择器 ' : root ' 来控制字体弹性 ] ( #use-root-for-flexible-type )
42
42
43
43
44
44
<div id =" use-not-to-applyunapply-borders-on-navigation " ></div >
45
- ### 使用 ` :not() ` 选择器决定导航菜单是否显示边框
45
+ ### 使用 ` :not() ` 选择器来决定表单是否显示边框
46
46
47
- 与其加上边框...
47
+ 与其加上边框……
48
48
49
49
``` css
50
50
/* 添加边框 */
53
53
}
54
54
```
55
55
56
- ... 然后去掉最后一个元素的边框...
56
+ …… 然后去掉最后一个元素的边框……
57
57
58
58
``` css
59
59
/* 去掉边框 */
62
62
}
63
63
```
64
64
65
- ...不如使用 ` :not() ` 伪类实现同样的效果 :
65
+ ...不如使用 ` :not() ` 伪类来达成同样的效果 :
66
66
67
67
``` css
68
68
.nav li :not (:last-child ) {
69
69
border-right : 1px solid #666 ;
70
70
}
71
71
```
72
72
73
- 当然,也可以使用 ` .nav li + li ` 或者 ` .nav li:first-child ~ li ` 实现 ,但是 ` :not() ` 选择器的实现更清晰明了 ,一目了然。
73
+ 当然,也可以使用 ` .nav li + li ` 或者 ` .nav li:first-child ~ li ` 来达成 ,但是 ` :not() ` 选择器的方式更清晰明了 ,一目了然。
74
74
75
75
<sup >[ 回目录] ( #table-of-contents ) </sup >
76
76
77
77
78
78
<div id =" add-line-height-to-body " ></div >
79
- ### 给 ` body ` 元素加行高
79
+ ### 为 ` body ` 元素添加行高
80
80
81
- 不必给每一个 ` <p> ` ,` <h*> ` ,_ 等元素_逐一添加 ` line-height ` ,给 ` body ` 元素添加就好了:
81
+ 不必为每一个 ` <p> ` ,` <h*> ` ,_ 等元素_逐一添加 ` line-height ` ,为 ` body ` 元素添加就好了:
82
82
83
83
``` css
84
84
body {
94
94
<div id =" vertically-center-anything " ></div >
95
95
### 垂直居中任何元素
96
96
97
- 这不是黑魔法,就是可以垂直居中任何元素 :
97
+ 这不是黑魔法,真的可以垂直居中任何元素 :
98
98
99
99
``` css
100
100
html , body {
@@ -111,7 +111,7 @@ body {
111
111
}
112
112
```
113
113
114
- 这还不够?垂直方向,水平方向... 任何元素,任何时间,任何地方?CSS-Tricks [ 有篇好文] ( https://css-tricks.com/centering-css-complete-guide/ ) 讲到了各种居中的实现 。
114
+ 这还不够?垂直方向,水平方向…… 任何元素,任何时间,任何地方?CSS-Tricks [ 有篇好文] ( https://css-tricks.com/centering-css-complete-guide/ ) 讲到了各种居中的技巧 。
115
115
116
116
** 注意:** IE11 对 flexbox 的支持[ 有点 bug] ( https://github.com/philipwalton/flexbugs#3-min-height-on-a-flex-container-wont-apply-to-its-flex-items ) 。
117
117
@@ -131,7 +131,7 @@ ul > li:not(:last-child)::after {
131
131
132
132
使用了 ` :not() ` 伪类,因此最后一项没加逗号。
133
133
134
- ** 注意:** 这一实现对于无障碍 ,屏幕阅读器而言并不理想,需要注意。
134
+ ** 注意:** 这一技巧对于无障碍 ,屏幕阅读器而言并不理想,需要注意。
135
135
136
136
<sup >[ 回目录] ( #table-of-contents ) </sup >
137
137
@@ -180,7 +180,7 @@ li:not(:nth-child(-n+3)) {
180
180
181
181
SVG 在所有分辨率下都可以良好缩放,IE9+ 及其它所有浏览器都支持,丢掉你的 .png, .jpg, 或 .gif-jif-whatev 文件吧。
182
182
183
- ** 注意:** 针对仅有图标的按钮,如果 SVG 没有加载成功的话,以下样式对无障碍性有所帮助 :
183
+ ** 注意:** 针对仅有图标的按钮,如果 SVG 没有加载成功的话,以下样式对无障碍有所帮助 :
184
184
185
185
``` css
186
186
.no-svg .icon-only :after {
@@ -192,7 +192,7 @@ SVG 在所有分辨率下都可以良好缩放,IE9+ 及其它所有浏览器
192
192
193
193
194
194
<div id =" use-the-lobotomized-owl-selector " ></div >
195
- ### 使用 " 形似猫头鹰" 的选择器
195
+ ### 使用「 形似猫头鹰」 的选择器
196
196
197
197
这个名字可能比较陌生,不过全局选择器 (` * ` ) 和 相邻兄弟选择器 (` + ` ) 一起使用,效果非凡:
198
198
@@ -202,17 +202,17 @@ SVG 在所有分辨率下都可以良好缩放,IE9+ 及其它所有浏览器
202
202
}
203
203
```
204
204
205
- 此例中,文档流里紧跟在其它元素后面的所有元素具有 ` margin-top: 1.5em ` 的样式。
205
+ 在此示例中,遵循其他元素的文档流中的所有元素将都接收上边距 ` margin-top: 1.5em ` 的样式。
206
206
207
207
更多 "形似猫头鹰" 的选择器,可参考 * A List Apart* 上面 [ Heydon Pickering 的文章] ( http://alistapart.com/article/axiomatic-css-and-lobotomized-owls )
208
208
209
209
<sup >[ 回目录] ( #table-of-contents ) </sup >
210
210
211
211
212
212
<div id =" use-max-height-for-pure-css-sliders " ></div >
213
- ### 使用 ` max-height ` 实现纯 CSS 滑块
213
+ ### 使用 ` max-height ` 来建立纯 CSS 的滑块
214
214
215
- ` max-height ` 与 overflow hidden 一起实现纯 CSS 的滑块:
215
+ ` max-height ` 与 overflow hidden 一起来建立纯 CSS 的滑块:
216
216
217
217
``` css
218
218
.slider {
@@ -269,7 +269,7 @@ html {
269
269
270
270
271
271
<div id =" get-rid-of-margin-hacks-with-flexbox " ></div >
272
- ### 利用 Flexbox 去除多余的 Margin
272
+ ### 利用 Flexbox 去除多余的外边距
273
273
274
274
与其使用 ` nth- ` , ` first- ` , 和 ` last-child ` 去除列之间多余的间隙,不如使用 flexbox 的 ` space-between ` 属性:
275
275
@@ -290,7 +290,7 @@ html {
290
290
291
291
292
292
<div id =" use-attribute-selectors-with-empty-links " ></div >
293
- ### 利用属性选择器选择空链接
293
+ ### 利用属性选择器来选择空链接
294
294
295
295
当 ` <a> ` 元素没有文本内容,但是有 ` href ` 属性的时候,可以显示它的 ` href ` 链接:
296
296
@@ -306,9 +306,9 @@ a[href^="http"]:empty::before {
306
306
307
307
308
308
<div id =" style-default-links " ></div >
309
- ### 给"默认" 链接定义样式
309
+ ### 给「预设」 链接定义样式
310
310
311
- 给"默认" 链接定义样式:
311
+ 给「预设」 链接定义样式:
312
312
313
313
``` css
314
314
a [href ]:not ([class ]) {
@@ -323,7 +323,7 @@ a[href]:not([class]) {
323
323
324
324
325
325
<div id =" consistent-vertical-rhythm " ></div >
326
- ### 垂直节奏一致性
326
+ ### 一致的垂直节奏
327
327
328
328
通用选择器 (` * ` ) 跟元素一起使用,可以保持一致的垂直节奏:
329
329
@@ -341,7 +341,7 @@ a[href]:not([class]) {
341
341
<div id =" intrinsic-ratio-boxes " ></div >
342
342
### 内在比例盒
343
343
344
- 要创建具有内在比一个盒子,所有你需要做的就是应用顶部或底部填充,以一个div :
344
+ 要创建具有内在比一个盒子,所有你需要做的就是应用顶部或底部填充,从一个div :
345
345
346
346
``` css
347
347
.container {
@@ -360,15 +360,15 @@ a[href]:not([class]) {
360
360
}
361
361
```
362
362
363
- 使用20%的填充使得框等于其宽度的20%的高度。不管视口的宽度,孩子的div将保持其宽高比 (100%/ 20%= 5:1)。
363
+ 使用20%的填充使得框等于其宽度的20%的高度。不管视口的宽度,子元素的div将保持其宽高比 (100%/ 20%= 5:1)。
364
364
365
365
<sup >[ 回目录] ( #table-of-contents ) </sup >
366
366
367
367
368
368
<div id =" style-broken-images " ></div >
369
- ### 风格破碎的形象
369
+ ### 为破碎图象定义样式
370
370
371
- 让破碎的形象与CSS一点点更美观的 :
371
+ 只要一点CSS就可以美化破碎的图象 :
372
372
373
373
``` css
374
374
img {
@@ -383,7 +383,7 @@ img {
383
383
}
384
384
```
385
385
386
- 现在添加伪元素的规则来显示用户信息和虚线图像的URL引用 :
386
+ 以添加伪元素的法则来显示使用者信息和虚线图像URL的引用 :
387
387
388
388
``` css
389
389
img :before {
@@ -399,15 +399,15 @@ img:after {
399
399
}
400
400
```
401
401
402
- 了解更多关于造型此模式中 [ Ire Aderinokun] ( https://github.com/ireade/ ) 的 [ 原帖] ( http://bitsofco.de/styling-broken-images/ ) .
402
+ 了解更多关于这类样式的技巧 [ Ire Aderinokun] ( https://github.com/ireade/ ) 的 [ 原帖] ( http://bitsofco.de/styling-broken-images/ ) .
403
403
404
404
<sup >[ 回目录] ( #table-of-contents ) </sup >
405
405
406
406
407
407
<div id =" use-rem-for-global-sizing-use-em-for-local-sizing " ></div >
408
- ### 使用 ` rem ` 全球上浆; 使用 ` em ` 本地浆纱
408
+ ### 用 ` rem ` 来调整全局大小; 用 ` em ` 来调整局部大小
409
409
410
- 在根設置基本字體大小後 (` html { font-size: 16px; } ` ), 設置為文本元素的字體大小 ` em ` :
410
+ 在根设置基本字体大小后 (` html { font-size: 16px; } ` ), 请设置为文本元素的字体大小 ` em ` :
411
411
412
412
``` css
413
413
h2 {
419
419
}
420
420
```
421
421
422
- 然後設置字體大小的模塊 ` rem ` :
422
+ 然后设置字体大小的模块 ` rem ` :
423
423
424
424
``` css
425
425
article {
@@ -431,15 +431,15 @@ aside .module {
431
431
}
432
432
```
433
433
434
- 現在,每個模塊變得條塊分割,更容易的風格,更易於維護和靈活 。
434
+ 现在,每个模块变得条块分割,更容易、灵活的样式,以便于维护 。
435
435
436
436
<sup >[ 回目录] ( #table-of-contents ) </sup >
437
437
438
438
439
439
<div id =" hide-autoplay-videos-that-arent-muted " ></div >
440
- ### 隱藏自動播放的影片,沒有靜音
440
+ ### 隐藏没有静音,自动播放的影片
441
441
442
- 這是一個自定義的用戶樣式表一個偉大的把戲。避免在加載頁面時自動播放視頻超載有聲的用戶。如果沒有靜音,不顯示視頻 :
442
+ 这是一个自定义的使用者样式表一个伟大的把戏。避免在加载页面时自动播放。如果没有静音,则不显示视频 :
443
443
444
444
``` css
445
445
video [autoplay ]:not ([muted ]) {
@@ -453,17 +453,17 @@ video[autoplay]:not([muted]) {
453
453
454
454
455
455
<div id =" use-root-for-flexible-type " ></div >
456
- ### 使用 ` :root ` 柔性型
456
+ ### 使用选择器 ` :root ` 来控制字体弹性
457
457
458
- 在响应式布局的类型字体大小应能与每个视口进行调整。你可以计算的基础上视口高度的字体大小和宽度 ,使用` :root ` :
458
+ 在响应式布局的类型字体大小应能与每个视区进行调整。你可以计算的基础上视区高度的字体大小和宽度 ,使用` :root ` :
459
459
460
460
``` css
461
461
:root {
462
462
font-size : calc (1vw + 1vh + .5vmin );
463
463
}
464
464
```
465
465
466
- 现在,您可以利用基于'计算的值 ` root em ` 单位:root`:
466
+ 现在,您可以利用基于计算的值 ` root em ` 单位:root`:
467
467
468
468
``` css
469
469
body {
0 commit comments