찾다
웹 프론트엔드HTML 튜토리얼[读书笔记] CSS权威指南1: 选择器_html/css_WEB-ITnose

通配选择器

可以与任何元素匹配,就像是一个通配符

/*每一个元素的字体都设置为红色*/* {    color: red;}

元素选择器

指示文档元素的选择器。

/*为body的字体设置为红色*/body {    color: red;}

分组

  • 选择器分组
  • h1, h2, h3 {    color: red;}

  • 声明分组
  • h1 {    font: 18px Helvetica;    color: purple;    background: aqua;}

  • 结合选择器和声明分组
  • h1, h2, h3 {    font: 18px Helvetica;    color: purple;    background: aqua;}

    类选择器和ID选择器

    独立于文档元素的方式来指定样式

  • 类选择器
  • .warning {    font-weight: bold}/*包含warning元素的p标签会apply下面的style*/p.warning {    font-weight: bold}/*同时包含urgent和warning类名的元素会apply下面的style,类名顺序不限*/.urgent.warning {    font-weight: bold}/*同时包含urgent和warning类名的元素P会apply下面的style*/p.urgent.warning {    font-weight: bold}

  • ID选择器
  • #content {    margin: 0;}

    ID选择器和类选择器的不同之处:

    1. 在一个HTML文档中,ID选择器会使用一次,而且仅一次。因此,如果有一个元素的id值为lead-para,那么该文档中所有其他元素的id值都不能是lead-para。(注: 浏览器通常并不检查HTML中ID的唯一性,这意味着如果你在HTML文档中设罝了多个有相同ID属性值的元素,就可能为这些元素应用相同的样式。)
    2. ID选择器不能结合使用,因为ID属性不允许有以空格分隔的词列表。

    类选择器和ID选择器可能是区分大小写的,这取决于文档语言。HTML和 XHTML将类和ID值定义为区分大小写,所以类和ID值的大小写必须与文档中的相应值匹配。

    属性选择器

  • 简单属性选择器
  • 如果希望选择有某个属性的元素,而不论该属性的值是什么,可以使用一个简单属性选择器。

    /*选择有class属性(值不限)的所有h1元素,设置其字体颜色为红色 */h1[class] {    color: red;}/*将同时有href和title属性的HTML超链接的文本置为粗体*/a[href][title] {    font-weight: bold;}

  •  根据具体属性值选择
  • /*设置具有href属性,并且属性值为http://www.w3.org/的a标签的font-size为200%*/a[href="http://www.w3.org/"] {    font-size: 200%;}/*同时满足*/a[href="http://www.w3.org/"][title="W3C Home"]{    font-size: 200%;}

    这种格式要求必须与属性值完全匹配

  • 根据部分属性值选择
  • 如果属性能接受词列表(词之间用空格分隔),可以根据其中的任意一个词进行选择。

    <span class="barren rocky">Mercury</planet><span class="cloudy barren">Venus</planet><span class="life-bearing cloudy">Earth</planet>/*为了把class属性中有barren的所有元素变为斜体,可以写作:*/span[class~="barren"] { font-style: italic;}

    p.warning和p[class~="warning"]应用到HTML文档时是等价的

    类型 描述
    [foo^="bar"] 选择foo属性值以"bar"开头的所有元素
    [foo$="bar"] 选择foo属性值以"bar"结尾的所有元素
    [foo~="bar"] 选择foo属性值包含"bar"的所有元素(属性的值根据空格分隔,其中任意一个词能完全匹配bar)
    [foo*="bar"] 选择foo属性值包含"bar"的所有元素(只要包含就可以了,任意位置都可以,不必是一个完整的单词)
  • 特定属性选择类型
  • 用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。

    <h1 id="Hello">Hello!</h1><p lang="en-us">Greetings!</p><div lang="en-au">G’day!</div><p lang="fr">Bonjour!</p><h4 id="Jrooana">Jrooana!</h4>/*上述标签前三个会变成红色,后两个还是黑色*/*[lang|="en"] { color: red;}

    后代选择器

    h1 em {    color: gray;}/*blockquote中包含的所有b(粗体)元素的文本颜色为灰色,另外正常段落中的所有粗体文本也为灰色*/blockquote b, p b {    color: gray;}

    后代选择器中,元素之间的层次间隔可以是无限的。

    子元素选择器

    h1>strong {    color: red;}

    子元素选择器限制为只匹配树种直接相连的元素。

    可以在同一个选择器中结合使用后代选择器和子选择器。

    /*选择作为一个td元素子元素的所有p元素,这个td元素本身从table元素继承,该table元素有一个包含summary的class属性*/table.suitimary td > p {    color: red;}

    相邻兄弟选择器

    和子结合符一样,相邻兄弟结合符旁边可以有空白符。

    /*去除紧接在一个h1元素后出现的段落的上边距*/h1+p {    margin-top: 0;}

    需要注意的是:

  • 用一个结合符只能选择两个相邻兄弟中的第二个元素。因此,如果写作li+li {font-weight: bold;},只会把各列表中的第二个及以后的列表项变成粗体。
  • 两个元素之间的文本内容不会影响相邻兄弟结合符起作用。
  • <div><ol><li>List item 1</li><li>List item 1</li><li>List item 1</li></ol> This is some text that is part of the 'div'.<ul><li>A list item</li><li>Another list item</li><li>Yet another list item</li></ul></div>/*尽管两个列表间多了一行文本,不过还是可以用选择器ol+ul来匹配第二个列表。*/ol+ul {    color: red;}

    伪类和伪元素选择器

    利用伪类和伪元素选择器,可以为文档中不一定具有存在的结构指定样式,或者为某些元素(甚至是文档本身)的状态所指示的幻像类指定样式。会根据另外某种条件而非文档结构向文档中的某些部分应用样式,而且无法通过研究文档的标记准确地推断出采用何种方式应用样式。

  • 伪类选择器
  • 伪类名 描述
    :link

    指示作为超链接(即有一个href属性)并指向一个未访问地址的所有锚。

    注意,有些浏览器可能会不正确地将:link解释为指向任何超链接,包括已访问和未访问的超链接

    :visited

    指示作为已访问地址超链接的所有锚

    :focus 指示当前拥有输入焦点的元素,也就是说,可以接受键盘输入或者能以某种方式激活的元素
    :hover

    指示鼠标指针停留在哪个元素上。

    例如,鼠标指针可能停留在一个超链接上,:hover就会指示这个超链接

    :active

    指示被用户输入激活的元素。

    例如,鼠标指针停留在一个超链接上时,如果用户点击鼠标,就会激活这个超链接,将指示这个超链接

    a {    color: red;}a:link {    color: red;}/*两者是不同的,a:link指示的是一个有href属性的,并且未访问过的所有a节点a会应用到所有a标签*/

    a:link {    color: blue;}a:visited {    color: red;}a.external:link, a.external:visited {    color: maroon;}

    伪类的顺序很重要,通常建议为link-visited-focus-hover-active。

    :link和:visited是静态的——第一次显示之后,它们一般不会在改变文档的样式。

    :focus, :hover, :active是动态伪类。动态伪类可以应用到任何元素。

    input:focus {  background-color: silver;  font-weight: bold;}

  • 选择第一个子元素——:first-child,这也是一个静态伪类。
  • /*作为某元素(可以是任意元素)的第一个子元素的所有P元素设置为粗体。最常见的错误是认为p:first-child之类的选择器会选择p元素的第一个子元素。*/p:first-child {    font-weight: bold;}

  •  根据语言选择—— :lang()伪类。
  • 从对应的模式来讲,:lang()伪类就像是|=属性选择器。

    *:lang(fr) {   font-style: italic;}

    伪选择器和属性选择器之间的主要差别在于语言信息可以从很多来源得到,而且其中一些可能在元素之外。CSS2.1指出:

    在HTML中,语言由lang属性和META元素的组合来确定,还可能包括协议提供的信息,如HTTP首部。XML使用一个xml:lang属性,另外可能还有其他文档语言特定的方法来确定语言。

    因此,伪类比属性选择器稍微健壮一些。

    结合伪类:

    /*鼠标指针停留在未访问链接上时,可以让这些链接变成红色,而鼠标指针停留在已访问链接上时,链接变成紫红色。*/a:link:hover {    color: red;}a:visited:hover {    color: maroon;}

     用哪种顺序指定并不重要,写成a:hover:link会得到与a:link:hover一样的效果。

  • 伪元素选择器
  • 就像伪类为锚指定幻象类一样,伪元素能够在文档中插入假想的元素,从而得到某种效果。CSS2.1中定义了4个伪元素:设置首字母样式、设置第一行样式、设置之前和之后的样式。

  • 设置首字母样式
  • 用于设置一个块级元素首字母的样式,而且仅对该首字母设置样式。

    /*让每个h2中第一个字母的大小是标题中其余字母大小的2倍*/h2:first-letter {    font-size: 200%;}

    这个规则会导致用户代理(浏览器)对一个假想的元素作出响应,这个假想元素包含每个h2中的第一个字母。可能如下所示:

    This is an h2 element


    :first-letter样式只应用到上例所示假想元素的内容。这个元素并不出现在文档源代码中。相反,它是由用户代理动态构造的,用于向相应文本块应用:first-letter样式。换句话说,是一个伪元素。
  • 设置第一行样式
  • :first-line可以用来影响元素中第一个文本行。(第一行是指显示区域的第一行,所以浏览器窗口大小不同,第一行所代表的字符数量也是不同的。)

    /*应用于每一段所显示的第一行文本。*/p:first-line {    color: red;}

    :first-letter, :first-line允许设置的CSS属性:

    :first-letter :first-line
    所有的font属性 所有的font属性
    color color
    所有background属性 所有background属性
    所有margin属性  
    所有padding属性  
    所有border属性  
    text-decoration text-decoration
    vertical-align vertical-align
    text-transform text-transform
    line-height line-height
    float  
    letter-spacing letter-spacing
    word-spacing  
  • 设置之前和之后的样式
  • h2:before {  content: "before";  color: red;}h2:after {  content: "after";  color: red;}

    所有伪元素都必须放在出现该伪元素的选择器的最后面,如果写成p: first-line em就是不合法的,因为伪元素在选择器主体前面出现。

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

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

    HTML 및 코드 : 용어를 자세히 살펴 봅니다HTML 및 코드 : 용어를 자세히 살펴 봅니다Apr 10, 2025 am 09:28 AM

    "Code"는 "Code"BroadlyIncludeLugageslikeJavaScriptandPyThonforFunctureS (htMlisAspecificTypeofCodeFocudecturecturingWebContent)

    HTML, CSS 및 JavaScript : 웹 개발자를위한 필수 도구HTML, CSS 및 JavaScript : 웹 개발자를위한 필수 도구Apr 09, 2025 am 12:12 AM

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

    HTML, CSS 및 JavaScript의 역할 : 핵심 책임HTML, CSS 및 JavaScript의 역할 : 핵심 책임Apr 08, 2025 pm 07:05 PM

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

    HTML은 초보자를 위해 쉽게 배우나요?HTML은 초보자를 위해 쉽게 배우나요?Apr 07, 2025 am 12:11 AM

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

    HTML의 시작 태그의 예는 무엇입니까?HTML의 시작 태그의 예는 무엇입니까?Apr 06, 2025 am 12:04 AM

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

    메뉴에서 점선 분할 효과의 중심 정렬을 달성하기 위해 CSS의 Flexbox 레이아웃을 사용하는 방법은 무엇입니까?메뉴에서 점선 분할 효과의 중심 정렬을 달성하기 위해 CSS의 Flexbox 레이아웃을 사용하는 방법은 무엇입니까?Apr 05, 2025 pm 01:24 PM

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

    온라인 코드 편집기는 코드 입력을 구현하는 데 사용하는 HTML 요소는 무엇입니까?온라인 코드 편집기는 코드 입력을 구현하는 데 사용하는 HTML 요소는 무엇입니까?Apr 05, 2025 pm 01:21 PM

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

    See all articles

    핫 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를 무료로 생성하십시오.

    인기 기사

    R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
    3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. 최고의 그래픽 설정
    3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
    3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
    3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

    뜨거운 도구

    DVWA

    DVWA

    DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

    Eclipse용 SAP NetWeaver 서버 어댑터

    Eclipse용 SAP NetWeaver 서버 어댑터

    Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

    에디트플러스 중국어 크랙 버전

    에디트플러스 중국어 크랙 버전

    작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

    Dreamweaver Mac版

    Dreamweaver Mac版

    시각적 웹 개발 도구

    스튜디오 13.0.1 보내기

    스튜디오 13.0.1 보내기

    강력한 PHP 통합 개발 환경