고급 CSS 팁

高洛峰
풀어 주다: 2016-11-22 10:00:53
원래의
1588명이 탐색했습니다.

메뉴에 테두리를 추가/취소하려면 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%;
}
로그인 후 복사

这样,列之间的空白就会被均匀的填满

对空链接使用属性选择器

中没有文本而href不为空的时候,显示其链接:

文本溢出省略的处理方法

单行文本溢出

多行文本溢出


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿