搜尋
首頁web前端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 10, 2025 am 09:28 AM

    htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代碼” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代碼”代碼“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

    HTML,CSS和JavaScript:Web開發人員的基本工具HTML,CSS和JavaScript:Web開發人員的基本工具Apr 09, 2025 am 12:12 AM

    HTML、CSS和JavaScript是Web開發的三大支柱。 1.HTML定義網頁結構,使用標籤如、等。 2.CSS控製網頁樣式,使用選擇器和屬性如color、font-size等。 3.JavaScript實現動態效果和交互,通過事件監聽和DOM操作。

    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

    AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

    如何利用CSS的Flexbox佈局實現菜單中虛線分割效果的居中對齊?如何利用CSS的Flexbox佈局實現菜單中虛線分割效果的居中對齊?Apr 05, 2025 pm 01:24 PM

    如何設計菜單中的虛線分割效果?在設計菜單時,菜名和價格的左右對齊通常不難實現,但中間的虛線或點如何...

    在線代碼編輯器究竟用什麼HTML元素實現代碼輸入?在線代碼編輯器究竟用什麼HTML元素實現代碼輸入?Apr 05, 2025 pm 01:21 PM

    網頁代碼編輯器中的HTML元素分析許多在線代碼編輯器允許用戶輸入HTML、CSS和JavaScript代碼。最近,有人提出了一...

    React靜態頁面構建:如何用react-app-rewired避免代碼壓縮?React靜態頁面構建:如何用react-app-rewired避免代碼壓縮?Apr 05, 2025 pm 01:18 PM

    關於使用react-app-rewired構建靜態頁面時如何避免代碼壓縮許多開發者在使用React構建靜態頁面時,希望在交付給�...

    See all articles

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    AI Hentai Generator

    AI Hentai Generator

    免費產生 AI 無盡。

    熱門文章

    R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
    3 週前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳圖形設置
    3 週前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.如果您聽不到任何人,如何修復音頻
    3 週前By尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25:如何解鎖Myrise中的所有內容
    3 週前By尊渡假赌尊渡假赌尊渡假赌

    熱工具

    SecLists

    SecLists

    SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    Atom編輯器mac版下載

    Atom編輯器mac版下載

    最受歡迎的的開源編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用