开篇
有30个CSS选择器你必须烂熟于心,它们适应于当今各大主流浏览器。
1.*
* { margin: 0; padding: 0;}
*选择器选择的是每一个单一元素。很多程序员用上面的CSS将所有元素的margin和padding清零。虽然这是有效的,但最好还是别这么做,这会使得浏览器的负担很重。
*选择器也可以用在孩子选择器中。
#container * { border: 1px solid black;}
这会使#container所有孩子都有border,但还是那句话,如果不是必须得这么做,还是别用星选择器。
view demo
Compatibility
- IE6+
- Firefox
- Chrome
- Safari
- Opera
2.#x
#container { width: 960px; margin: auto;}
id选择器的优先级很高,因此在用之前问问自己:我仅仅是为了找到这个元素而去给他加id的吗?
view demo
Compatibility
- IE6+
- Firefox
- Chrome
- Safari
- Opera
3..x
.error { color: red;}
class选择器和id选择器不同,首先优先级没有id高,再者id选择器只能选择一个,而class选择器则可以筛选出来一组。
view demo
Compatibility
- IE6+
- Firefox
- Chrome
- Safari
- Opera
4.x y
li a { text-decoration: none;}
当不是选择所有后代时,后代选择器将会非常有用,但有一点得注意:如果你的选择器是x y z a b.error, 那你就用错了。你得问问自己是否需要应用每一层?
view demo
Compatibility
- IE6+
- Firefox
- Chrome
- Safari
- Opera
5.x
a { color: red; }ul { margin-left: 0; }
如果想选择同一类元素,那就不要用id或class了,直接用元素选择器。
view demo
Compatibility
- IE6+
- Firefox
- Chrome
- Safari
- Opera
6.x:visted and x:link
a:link { color: red; }a:visted { color: purple; }
我们常常用伪类:link筛选a标签是还未被点击;而用:visited去筛选哪些别点击过了。
view demo
Compatibility
- IE7+
- Firefox
- Chrome
- Safari
- Opera
7.x + y
ul + p { color: red;}
相邻选择器会选择第一个相邻的元素,如上面的例子会让ul后第一个段落的字体变为红色(而ul与p之间是不能有其他元素的)。
view demo
Compatibility
- IE7+
- Firefox
- Chrome
- Safari
- Opera
8.x > y
div#container > ul { border: 1px solid black;}
这也是一种后代选择器,但它与x y这种后代选择器不同,它只能选择直系后代。如:
<div id="container"> <ul> <li> List Item <ul> <li> Child </li> </ul> </li> <li> List Item </li> <li> List Item </li> <li> List Item </li> </ul></div>
在这个例子中,#cotainer > ul只会选择第一个ul,而不会search到ul里面那个包含li的ul。
view demo
Compatibility
- IE7+
- Firefox
- Chrome
- Safari
- Opera
9.x ~ y
ul ~ p { color: red;}
这种兄弟选择器与x + y类似,但不同的是,后者只能筛选第一个p,而这种却可以满足ul下所有的直系p标签。
view demo
Compatibility
- IE7+
- Firefox
- Chrome
- Safari
- Opera
10.x[title]
a[title] { color: green;}
属性选择器。这将选择所有具有title属性的a标签。
view demo
Compatibility
- IE7+
- Firefox
- Chrome
- Safari
- Opera
11.x[href="foo"]
a[href="http://net.tutsplus.com"] { color: #1f6053; /* nettuts green */}
这个选择器可以选择链接为href="http://net.tutsplus.com"的a标签,可如果这个里这个链接变了呢?,这未免有些严格,可以适当的用正则表达式去匹配。
view demo
Compatibility
- IE7+
- Firefox
- Chrome
- Safari
- Opera
12.x[href*="nettuts"]
a[href*="tuts"] { color: #1f6053; /* nettuts green */}
'*'号将匹配href中含有nuttuts字符,如果想更加严格,还可以用^和$表示开始和结束。
view demo
Compatibility
- IE7+
- Firefox
- Chrome
- Safari
- Opera
13.x[href^="http"]
a[href^="http"] { background: url(path/to/external/icon.png) no-repeat; padding-left: 10px;}
这样去筛选具有有效href的a将匹配http://和https://.
view demo
Compatibility
- IE7+
- Firefox
- Chrome
- Safari
- Opera
14.x[href$=".jpg"]
a[href$=".jpg"] { color: red;}
这将会选择链接为jpg格式的图片链接,可是如果图片类型为png或gif等怎么办?
view demo
Compatibility
- IE7+
- Firefox
- Chrome
- Safari
- Opera
15.x[data-*="foo"]
a[data-filetype="image"] { color: red;}
按照规则14.我们可能得:
a[href$=".jpg"],a[href$=".jpeg"],a[href$=".png"],a[href$=".gif"] { color: red;}
可这也太。。。我们可以加一个属性用以标示。
<a href="path/to/image.jpg" data-filetype="image"> Image Link </a>
a[data-filetype="image"] { color: red;}
view demo
Compatibility
- IE7+
- Firefox
- Chrome
- Safari
- Opera
16.x[foo~="bar"]
a[data-info~="external"] { color: red;}a[data-info~="image"] { border: 1px solid black;}
~将会让我们匹配到属性值被空格分隔符分开的值,如:
"<a href="path/to/image.jpg" data-info="external image"> Click Me, Fool </a>
view demo
Compatibility
- IE7+
- Firefox
- Chrome
- Safari
- Opera
17.x:checked
input[type=radio]:checked { border: 1px solid black;}
这个常常对checkbox非常有用。
view demo
Compatibility
- IE9+
- Firefox
- Chrome
- Safari
- Opera
18.x:after
伪类before和after已经有了一些新的用法,比如最常见的:
.clearfix:after { content: ""; display: block; clear: both; visibility: hidden; font-size: 0; height: 0; }.clearfix { *display: inline-block; _height: 1%;}
没错,这就是默认标准clearfix的实现原理。
Compatibility
- IE8+
- Firefox
- Chrome
- Safari
- Opera
19.x:hover
div:hover { background: #e3e3e3;}
但是得注意,:hover在早期IE中并不适用。
Compatibility
- IE6+(In IE6, :hover must be applied to an anchor element)
- Firefox
- Chrome
- Safari
- Opera
20.x:not(selector)
div:not(#container) { color: blue;}
反选选择器。
view demo
Compatibility
- IE9+
- Firefox
- Chrome
- Safari
- Opera
21.x::pseudoElement
p::first-line { font-weight: bold; font-size: 1.2em;}p::first-letter { float: left; font-size: 2em; font-weight: bold; font-family: cursive; padding-right: 2px;}
伪元素选择器,注意尽量还是按标准来,多使用::而不是:。
view demo
Compatibility
- IE6+
- Firefox
- Chrome
- Safari
- Opera
22.x:nth-child(n)
li:nth-child(3) { color: red;}
选择一组中特定的孩子。n表示第几个,也可以是表达式,如2n+1,2n.
view demo
Compatibility
- IE9+
- Firefox 3.5+
- Chrome
- Safari
- Opera
23.x:nth-last-child(n)
li:nth-last-child(2) { color: red;}
如果li有400个,而你需要target到第397个,那用这个咱合适不过了。
view demo
Compatibility
- IE9+
- Firefox 3.5+
- Chrome
- Safari
- Opera
24.x:nth-of-type(n)
ul:nth-of-type(3) { border: 1px solid black;}
如果ul没有id,而你又要找第三个ul,那个这种方式是不错。
view demo
Compatibility
- IE9+
- Firefox 3.5+
- Chrome
- Safari
- Opera
25.x:nth-last-of-type(n)
ul:nth-last-of-type(3) { border: 1px solid black;}
与ul:nth-of-type刚好相反。
Compatibility
- IE9+
- Firefox 3.5+
- Chrome
- Safari
- Opera
26.x:first-child
ul li:first-child { border-top: none;}
view demo
Compatibility
- IE7+
- Firefox
- Chrome
- Safari
- Opera
27.x:last-child
Example<ul> <li> List Item </li> <li> List Item </li> <li> List Item </li></ul>
ul { width: 200px; background: #292929; color: white; list-style: none; padding-left: 0;}li { padding: 10px; border-bottom: 1px solid black; border-top: 1px solid #3c3c3c;}
view demo
但是我不想要第一个的上边框和最后一个的下边框,可以这么做:
li:first-child { border-top: none;}li:last-child { border-bottom: none;}
view demo
Compatibility
- IE9+
- Firefox
- Chrome
- Safari
- Opera
28.X:only-child
div p:only-child { color: red;}
这将匹配div里只有一个p的元素。如:
<div><p> My paragraph here. </p></div><div> <p> Two paragraphs total. </p> <p> Two paragraphs total. </p></div>
view demo
Compatibility
- IE9+
- Firefox
- Chrome
- Safari
- Opera
29.X:only-of-type
li:only-of-type { font-weight: bold;}
这将匹配元素内只有一个li的元素,有时这个做法很简便。比如要寻找只有一个列表的ul,可以:
ul > li:only-of-type { font-weight: bold;}
view demo
Compatibility
- IE9+
- Firefox 3.5+
- Chrome
- Safari
- Opera
30.x:first-of-type
Example<div> <p> My paragraph here. </p> <ul> <li> List Item 1 </li> <li> List Item 2 </li> </ul> <ul> <li> List Item 3 </li> <li> List Item 4 </li> </ul> </div>
如何寻找上面的 "List Item 2"呢?
办法1ul:first-of-type > li:nth-child(2) { font-weight: bold;}办法2
p + ul li:last-child { font-weight: bold;}办法3
ul:first-of-type li:nth-last-child(1) { font-weight: bold; }
view demo
Compatibility
- IE9+
- Firefox 3.5+
- Chrome
- Safari
- Opera
总结
上述选择器在IE6中的使用要尤其小心,但是别因为这而影响你阅读这篇文章。你可以参考一下浏览器兼容表,或者你可以用 Dean Edward's excellent IE9.js script 为旧版浏览器提供这些选择器的支持。
另外,当你在使用一些Javascript库时,如jQuery,请尽量的使用这些原生的CSS3选择器,因为浏览器选择器引擎将会按照浏览器的原生方式去解析,这将使得你的代码更加高效。
注:此文为译文我的博客请戳 | 原文请戳

HTML의 역할은 태그 및 속성을 통해 웹 페이지의 구조와 내용을 정의하는 것입니다. 1. HTML은 읽기 쉽고 이해하기 쉽게하는 태그를 통해 컨텐츠를 구성합니다. 2. 접근성 및 SEO와 같은 시맨틱 태그 등을 사용하십시오. 3. HTML 코드를 최적화하면 웹 페이지로드 속도 및 사용자 경험이 향상 될 수 있습니다.

"Code"는 "Code"BroadlyIncludeLugageslikeJavaScriptandPyThonforFunctureS (htMlisAspecificTypeofCodeFocudecturecturingWebContent)

HTML, CSS 및 JavaScript는 웹 개발의 세 가지 기둥입니다. 1. HTML은 웹 페이지 구조를 정의하고 등과 같은 태그를 사용합니다. 2. CSS는 색상, 글꼴 크기 등과 같은 선택기 및 속성을 사용하여 웹 페이지 스타일을 제어합니다.

HTML은 웹 구조를 정의하고 CSS는 스타일과 레이아웃을 담당하며 JavaScript는 동적 상호 작용을 제공합니다. 세 사람은 웹 개발에서 의무를 수행하고 화려한 웹 사이트를 공동으로 구축합니다.

HTML은 간단하고 배우기 쉽고 결과를 빠르게 볼 수 있기 때문에 초보자에게 적합합니다. 1) HTML의 학습 곡선은 매끄럽고 시작하기 쉽습니다. 2) 기본 태그를 마스터하여 웹 페이지를 만들기 시작하십시오. 3) 유연성이 높고 CSS 및 JavaScript와 함께 사용할 수 있습니다. 4) 풍부한 학습 리소스와 현대 도구는 학습 과정을 지원합니다.

anexampleStartingtaginhtmlis, whithbeginsaparagraph.startingtagsareessentialinhtmlastheyinitiate rements, definetheirtypes, andarecrucialforstructurituringwebpages 및 smanstlingthedom.

메뉴에서 점선 분할 효과를 설계하는 방법은 무엇입니까? 메뉴를 설계 할 때는 일반적으로 접시 이름과 가격 사이에 왼쪽과 오른쪽을 정렬하는 것이 어렵지 않지만 점선 또는 중간의 점은 어떻습니까?

웹 코드 편집기의 HTML 요소 분석 많은 온라인 코드 편집기를 사용하면 사용자가 HTML, CSS 및 JavaScript 코드를 입력 할 수 있습니다. 최근에 누군가가 제안했습니다 ...


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구
