메뉴에 테두리를 추가/취소하려면 not()을 사용하세요.
많은 사람들이 탐색에 이렇게 테두리를 추가한 다음 마지막 테두리를 취소합니다.
/* add border */ .nav li { border-right: 1px solid #666; } /* remove border */ .nav li:last-child { border-right: none; }
실제로 CSS3를 사용하세요. :not()은 다음 코드로 단순화될 수 있습니다:
.nav li:not(:last-child) { border-right: 1px solid #666; }
물론 .nav li + li 또는 심지어 .nav li:first-를 사용할 수도 있습니다. child ~ li, 그러나 :not() 사용은 작동합니다. 의도를 더 명확하게 만듭니다
IE8 및 이전 버전을 제외한 모든 주요 브라우저는 :not 선택기를 지원합니다.
본문에 line-height 속성을 추가합니다
,
body { line-height: 1; }
이렇게 하면 텍스트 요소가 본문 속성
Vertical Center
에서 이 속성을 쉽게 상속할 수 있습니다.
html, body { height: 100%; margin: 0; } body { -webkit-align-items: center; -ms-flex-align: center; align-items: center; display: -webkit-flex; display: flex; }
참고: Flexbox에는 몇 가지 버그가 있습니다. IE11
쉼표를 사용하여 목록 구분
목록을 쉼표로 구분된 것처럼 보이게 만듭니다.
ul > li:not(:last-child)::after { content: ","; }
:not(를 통해 마지막 요소 뒤의 쉼표를 제거합니다. ) 의사 클래스
음수 n번째 자식을 사용하여 요소 선택
음수 n번째 자식을 사용하여 1과 n 사이의 요소를 선택합니다.
li { display: none; } /* 选择第1到3个元素并显示它们 */ li:nth-child(-n+3) { display: block; }
물론, 이해하시겠지만, 다음과 같이 할 수도 있습니다:
li:not(:nth-child(-n+3)) { display: none; }
아이콘에 SVG 사용
아이콘에 SVG를 사용하지 않을 이유가 없습니다:
.logo { background: url("logo.svg"); }
SVG는 모든 해상도에서 크기 조정이 잘 작동하고 모든 IE9+ 브라우저를 지원하므로 png, jpg, gif 파일 사용을 포기하세요.
참고: 다음 코드는 보조 장치를 사용하여 인터넷에 액세스하는 사용자의 접근성을 향상시킬 수 있습니다.
.no-svg .icon-only:after { content: attr(aria-label); }
표시 텍스트 최적화
때때로 글꼴이 모든 기기에서 최적으로 표시되지 않을 수 있으므로 기기 브라우저의 도움을 받으세요.
html { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
참고: OptimizeLegibility를 책임감 있게 사용하십시오. 또한, IE/Edge는 텍스트 렌더링을 지원하지 않습니다
max-height를 사용하여 순수 CSS 슬라이드쇼 구현
숨김 너머로 max-height를 사용하여 순수 CSS 슬라이드쇼 구현:
.slider ul { max-height: 0; overlow: hidden; } .slider:hover ul { max-height: 1000px; transition: .3s ease; /* animate to max-height */ }
继承box-sizing
让box-sizing继承自html:
html { box-sizing: border-box; } *, *:before, *:after { box-sizing: inherit; }
这使得在插件或者其他组件中修改box-sizing属性变得更加容易
设置表格相同宽度
.calendar { table-layout: fixed; }
使用Flexbox来避免Margin Hacks
在做多列布局的时候,可以通过Flexbox的space-between属性来避免nth-、first-、 last-child等hacks:
.list { display: flex; justify-content: space-between; } .list .person { flex-basis: 23%; }
这样,列之间的空白就会被均匀的填满
对空链接使用属性选择器
a[href^="http"]:empty::before { content: attr(href); }
文本溢出省略的处理方法
单行文本溢出
.inline{ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
多行文本溢出
.foo{ display: -webkit-box!important; overflow: hidden; text-overflow: ellipsis; word-break: break-all; -webkit-box-orient: vertical;/*方向*/ -webkit-line-clamp:4;/*显示多少行文本*/ }