목차
◆使用 :not() 在菜单上应用/取消应用边框
◆给 body添加行高
◆所有一切都垂直居中
◆逗号分隔的列表
◆使用负的 nth-child 选择项目
◆对图标使用SVG
◆优化显示文本
◆对纯CSS滑块使用 max-height
◆继承 box-sizing
◆表格单元格等宽
◆使用属性选择器用于空链接
◆支持这些高级技巧在Chrome、Firefox、Safari、Edge的当前版本,以及IE11中都能有效工作。
웹 프론트엔드 HTML 튜토리얼 CSS 高级技巧汇总

CSS 高级技巧汇总

Jun 08, 2016 am 08:47 AM

在我们平时写代码的时候没有没有掌握一些CSS技巧呢? 今天给大家分享一个《CSS 高级技巧汇总让你的代码简洁高效》。大家务必掌握这些小技巧,会让你非常高效率的写出网页的。

css

◆使用 :not() 在菜单上应用/取消应用边框

先给每一个菜单项添加边框

1

2

3

4

<span style="color: #008000;">/*</span><span style="color: #008000;"> add border </span><span style="color: #008000;">*/</span><span style="color: #800000;">

.nav li </span>{<span style="color: #ff0000;">

     border-right</span>:<span style="color: #0000ff;"> 1px solid #666</span>;

}

로그인 후 복사

 

……然后再除去最后一个元素……

1

2

3

4

<span style="color: #800000;">/</span><span style="color: #008000;">/*</span><span style="color: #008000;"> remove border </span><span style="color: #008000;">*/</span><span style="color: #800000;">

.nav li:last-child </span>{<span style="color: #ff0000;">

     border-right</span>:<span style="color: #0000ff;"> none</span>;

}

로그인 후 복사

 

……可以直接使用 :not() 伪类来应用元素:

1

2

3

<span style="color: #800000;">.nav li:not(:last-child) </span>{<span style="color: #ff0000;">

     border-right</span>:<span style="color: #0000ff;"> 1px solid #666</span>;

}

로그인 후 복사

 

这样代码就干净,易读,易于理解了。

当然,如果你的新元素有兄弟元素的话,也可以使用通用的兄弟选择符(~):

1

2

3

<span style="color: #800000;">..nav li:first-child ~ li </span>{<span style="color: #ff0000;">

     border-left</span>:<span style="color: #0000ff;"> 1px solid #666</span>;

}

로그인 후 복사

 

◆给 body添加行高

你不需要分别添加 line-height 到每个

等。只要添加到 body 即可:

1

2

3

<span style="color: #800000;">body </span>{<span style="color: #ff0000;">

   line-height</span>:<span style="color: #0000ff;"> 1</span>;

}

로그인 후 복사

 

这样文本元素就可以很容易地从 body 继承。

◆所有一切都垂直居中

要将所有元素垂直居中,太简单了:

1

2

3

4

5

6

7

8

9

10

11

<span style="color: #800000;">html, body </span>{<span style="color: #ff0000;">

   height</span>:<span style="color: #0000ff;"> 100%</span>;<span style="color: #ff0000;">

   margin</span>:<span style="color: #0000ff;"> 0</span>;

}<span style="color: #800000;">

body </span>{<span style="color: #ff0000;">

   -webkit-align-items</span>:<span style="color: #0000ff;"> center</span>;<span style="color: #ff0000;">

   -ms-flex-align</span>:<span style="color: #0000ff;"> center</span>;<span style="color: #ff0000;">

   align-items</span>:<span style="color: #0000ff;"> center</span>;<span style="color: #ff0000;">

   display</span>:<span style="color: #0000ff;"> -webkit-flex</span>;<span style="color: #ff0000;">

   display</span>:<span style="color: #0000ff;"> flex</span>;

}

로그인 후 복사

看,是不是很简单。

注:在IE11中要小心flexbox。

◆逗号分隔的列表

让HTML列表项看上去像一个真正的,用逗号分隔的列表:

1

2

3

<span style="color: #800000;">ul > li:not(:last-child)::after </span>{<span style="color: #ff0000;">

   content</span>:<span style="color: #0000ff;"> ","</span>;

}

로그인 후 복사

 

对最后一个列表项使用 :not() 伪类。

◆使用负的 nth-child 选择项目

1

在CSS中使用负的 nth-child 选择项目1到项目n。

로그인 후 복사

1

2

3

4

5

6

7

<span style="color: #800000;">li </span>{<span style="color: #ff0000;">

   display</span>:<span style="color: #0000ff;"> none</span>;

}

<span style="color: #008000;">/*</span><span style="color: #008000;"> select items 1 through 3 and display them </span><span style="color: #008000;">*/</span><span style="color: #800000;">

li:nth-child(-n+3) </span>{<span style="color: #ff0000;">

   display</span>:<span style="color: #0000ff;"> block</span>;

}

로그인 후 복사

 

就是这么容易。

◆对图标使用SVG

我们没有理由不对图标使用SVG:

1

2

3

<span style="color: #800000;">.logo </span>{<span style="color: #ff0000;">

   background</span>:<span style="color: #0000ff;"> url("logo.svg")</span>;

}

로그인 후 복사

 

SVG对所有的分辨率类型都具有良好的扩展性,并支持所有浏览器都回归到IE9。这样可以避开.png、.jpg或.gif文件了。

◆优化显示文本

有时,字体并不能在所有设备上都达到最佳的显示,所以可以让设备浏览器来帮助你:

1

2

3

4

5

<span style="color: #800000;">html </span>{<span style="color: #ff0000;">

   -moz-osx-font-smoothing</span>:<span style="color: #0000ff;"> grayscale</span>;<span style="color: #ff0000;">

   -webkit-font-smoothing</span>:<span style="color: #0000ff;"> antialiased</span>;<span style="color: #ff0000;">

   text-rendering</span>:<span style="color: #0000ff;"> optimizeLegibility</span>;

}

로그인 후 복사

 

注:请负责任地使用 optimizeLegibility。此外,IE /Edge没有 text-rendering 支持。

◆对纯CSS滑块使用 max-height

使用 max-height 和溢出隐藏来实现只有CSS的滑块:

1

2

3

4

5

6

7

8

<span style="color: #800000;">.slider ul </span>{<span style="color: #ff0000;">

   max-height</span>:<span style="color: #0000ff;"> 0</span>;<span style="color: #ff0000;">

   overlow</span>:<span style="color: #0000ff;"> hidden</span>;

}<span style="color: #800000;">

.slider:hover ul </span>{<span style="color: #ff0000;">

   max-height</span>:<span style="color: #0000ff;"> 1000px</span>;<span style="color: #ff0000;">

   transition</span>:<span style="color: #0000ff;"> .3s ease</span>;

}

로그인 후 복사

 

◆继承 box-sizing

让 box-sizing 继承 html:

1

2

3

4

5

6

<span style="color: #800000;">html </span>{<span style="color: #ff0000;">

   box-sizing</span>:<span style="color: #0000ff;"> border-box</span>;

}<span style="color: #800000;">

*, *:before, *:after </span>{<span style="color: #ff0000;">

   box-sizing</span>:<span style="color: #0000ff;"> inherit</span>;

}

로그인 후 복사

 

这样在插件或杠杆其他行为的其他组件中就能更容易地改变 box-sizing 了。

◆表格单元格等宽

表格工作起来很麻烦,所以务必尽量使用 table-layout: fixed 来保持单元格的等宽:

1

2

3

<span style="color: #800000;">.calendar </span>{<span style="color: #ff0000;">

   table-layout</span>:<span style="color: #0000ff;"> fixed</span>;

}

로그인 후 복사

 

◆用Flexbox摆脱外边距的各种hack

当需要用到列分隔符时,通过flexbox的 space-between 属性,你就可以摆脱nth-,first-,和 last-child 的hack了:

1

2

3

4

5

6

7

<span style="color: #800000;">.list </span>{<span style="color: #ff0000;">

   display</span>:<span style="color: #0000ff;"> flex</span>;<span style="color: #ff0000;">

   justify-content</span>:<span style="color: #0000ff;"> space-between</span>;

}<span style="color: #800000;">

.list .person </span>{<span style="color: #ff0000;">

 flex-basis</span>:<span style="color: #0000ff;"> 23%</span>;

}

로그인 후 복사

 

现在,列表分隔符就会在均匀间隔的位置出现。

◆使用属性选择器用于空链接

元素没有文本值,但 href 属性有链接的时候显示链接:

1

2

3

<span style="color: #800000;">a[href^="http"]:empty::before </span>{<span style="color: #ff0000;">

   content</span>:<span style="color: #0000ff;"> attr(href)</span>;

}

로그인 후 복사

 

相当方便。

◆支持这些高级技巧在Chrome、Firefox、Safari、Edge的当前版本,以及IE11中都能有效工作。

 

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

공식 계정 웹 페이지의 캐싱 업데이트에 어려움 : 버전 업데이트 후 사용자 경험에 영향을 미치는 이전 캐시를 피하는 방법은 무엇입니까? 공식 계정 웹 페이지의 캐싱 업데이트에 어려움 : 버전 업데이트 후 사용자 경험에 영향을 미치는 이전 캐시를 피하는 방법은 무엇입니까? Mar 04, 2025 pm 12:32 PM

공식 계정 웹 페이지 업데이트 캐시, 이것은 간단하고 간단하며 냄비를 마시기에 충분히 복잡합니다. 공식 계정 기사를 업데이트하기 위해 열심히 노력했지만 사용자는 여전히 기존 버전을 열었습니까? 이 기사에서는이 뒤에있는 비틀기와 회전을 살펴 보고이 문제를 우아하게 해결하는 방법을 살펴 보겠습니다. 읽은 후에는 다양한 캐싱 문제를 쉽게 처리 할 수있어 사용자가 항상 가장 신선한 콘텐츠를 경험할 수 있습니다. 기본 사항에 대해 먼저 이야기 해 봅시다. 액세스 속도를 향상시키기 위해 브라우저 또는 서버는 일부 정적 리소스 (예 : 그림, CSS, JS) 또는 페이지 컨텐츠를 저장합니다. 다음에 액세스 할 때 다시 다운로드하지 않고도 캐시에서 직접 검색 할 수 있으며 자연스럽게 빠릅니다. 그러나 이것은 또한 양날의 검입니다. 새 버전은 온라인입니다.

웹 페이지의 PNG 이미지에 뇌졸중 효과를 효율적으로 추가하는 방법은 무엇입니까? 웹 페이지의 PNG 이미지에 뇌졸중 효과를 효율적으로 추가하는 방법은 무엇입니까? Mar 04, 2025 pm 02:39 PM

이 기사는 CSS를 사용한 웹 페이지에 효율적인 PNG 테두리 추가를 보여줍니다. CSS는 JavaScript 또는 라이브러리에 비해 우수한 성능을 제공하며, 미묘하거나 눈에 띄는 효과를 위해 테두리 너비, 스타일 및 색상 조정 방법을 자세히 설명합니다.

HTML5 양식 유효성 검사 속성을 사용하여 사용자 입력을 유효성있게하려면 어떻게합니까? HTML5 양식 유효성 검사 속성을 사용하여 사용자 입력을 유효성있게하려면 어떻게합니까? Mar 17, 2025 pm 12:27 PM

이 기사에서는 브라우저에서 직접 사용자 입력을 검증하기 위해 필요한, Pattern, Min, Max 및 Length 한계와 같은 HTML5 양식 검증 속성을 사용하는 것에 대해 설명합니다.

& lt; datalist & gt의 목적은 무엇입니까? 요소? & lt; datalist & gt의 목적은 무엇입니까? 요소? Mar 21, 2025 pm 12:33 PM

이 기사는 HTML & LT; Datalist & GT에 대해 논의합니다. 자동 완성 제안을 제공하고, 사용자 경험을 향상시키고, 오류를 줄임으로써 양식을 향상시키는 요소. 문자 수 : 159

HTML5의 크로스 브라우저 호환성에 대한 모범 사례는 무엇입니까? HTML5의 크로스 브라우저 호환성에 대한 모범 사례는 무엇입니까? Mar 17, 2025 pm 12:20 PM

기사는 HTML5 크로스 브라우저 호환성을 보장하기위한 모범 사례에 대해 논의하고 기능 감지, 점진적 향상 및 테스트 방법에 중점을 둡니다.

& lt; Progress & Gt의 목적은 무엇입니까? 요소? & lt; Progress & Gt의 목적은 무엇입니까? 요소? Mar 21, 2025 pm 12:34 PM

이 기사는 HTML & lt; Progress & Gt에 대해 설명합니다. 요소, 그 목적, 스타일 및 & lt; meter & gt의 차이; 요소. 주요 초점은 & lt; progress & gt; 작업 완료 및 & lt; meter & gt; Stati의 경우

& lt; meter & gt의 목적은 무엇입니까? 요소? & lt; meter & gt의 목적은 무엇입니까? 요소? Mar 21, 2025 pm 12:35 PM

이 기사는 HTML & lt; meter & gt에 대해 설명합니다. 범위 내에 스칼라 또는 분수 값을 표시하는 데 사용되는 요소 및 웹 개발의 일반적인 응용 프로그램. & lt; meter & gt; & lt; Progress & Gt; 그리고 Ex

html5 & lt; time & gt; 의미 적으로 날짜와 시간을 나타내는 요소? html5 & lt; time & gt; 의미 적으로 날짜와 시간을 나타내는 요소? Mar 12, 2025 pm 04:05 PM

이 기사는 html5 & lt; time & gt; 시맨틱 날짜/시간 표현 요소. 인간이 읽을 수있는 텍스트와 함께 기계 가독성 (ISO 8601 형식)에 대한 DateTime 속성의 중요성을 강조하여 Accessibilit를 향상시킵니다.

See all articles