HTML連載18-id選擇器與class區別&class選擇器使用思路&後代選擇器

来源:https://www.cnblogs.com/ruigege0000/archive/2019/07/01/11111902.html
-Advertisement-
Play Games

一、id選擇器和classable選擇器的區別 選擇器 CSS中的開頭 HTML標簽可以綁定幾個 是否可重覆 用途 id選擇器 # 僅能一個 不可以重覆(一個標簽里僅有一個) 一般情況下是給JS用的,除非特殊情況下才給設置樣式用 class選擇器 . 可以多個 可以重覆(多對多的關係) 專門用來設置 ...


一、id選擇器和classable選擇器的區別

選擇器

CSS中的開頭

HTML標簽可以綁定幾個

是否可重覆

用途

id選擇器

#

僅能一個

不可以重覆(一個標簽里僅有一個)

一般情況下是給JS用的,除非特殊情況下才給設置樣式用

class選擇器

.

可以多個

可以重覆(多對多的關係)

專門用來設置樣式的

二、選擇器的技巧可以節省代碼行數

看好問題:做一個網頁

“我是好人”(顏色:紅色;格式:宋體)

“我是學生”(顏色:綠色;格式:宋體)

”我是壞人“(顏色:紅色;格式:楷體)

正常的編碼是:就是按照一段一段的寫

好處是清晰,每一段知道設置的什麼,互不幹擾,但是冗餘代碼太多。

我們需要轉換思路,以屬性為中心,先設置好,在配到標簽上去,可以節省代碼。

 

        .d1{           

            color:red;

            font-family: 宋體;

        }

        .d2{

            color:green;

            font-family: 宋體;

        }

        .d3{

            color:red;

            font-family: 楷體;

        }

        ......省略代碼......

        <p class="d1">我是好人</p>

        <p class="d2">我是學生</p>

        <p class="d3">我是壞人</p>

 

我們改進代碼:顯示的一致,這也是對class性質(多標簽可對多個class選擇器)的應用,否則我們全用id選擇器不也一樣,一旦大網站開發,涉及到文本圖片是龐大,先定義好格式,配到文本圖片

        

.color_red{

            color: red;

        }

        .color_green{

            color:green;

        }

        .ff_songti{

            font-family: 宋體;

        }

        .ff_kaiti{

            font-family: 楷體;

        }

        ......省略代碼......

        <p class="color_red ff_songti">我是好人</p>

        <p class="color_green ff_songti">我是學生</p>

        <p class="color_red ff_kaiti">我是壞人</p>

 


二、後代選擇器

1.定義:找到指定標簽的所有後代標簽然後設置屬性。用途即為:企業開發會有上千上萬標簽,因此挨個寫class或者id就累死了,因此div應運而生。

2.格式:

 

標簽屬性1  標簽屬性2{

            屬性:值;

 

}

 

 

3.含義:先找到名稱叫做標簽名稱1的標簽,然後在這個標簽下麵去查找所有名稱為標簽名稱2的標簽,然後再設置屬性

4.註意:

(1)後代選擇器必須使用空格隔開

 

       div p{

            color:red;

        }

..........省略代碼........

<p>我是段落1</p>

<div>

    <p>我是紅的1</p>

    <p>我是紅的2</p>

</div>

 

 


(2)後代不僅僅是兒子,也包括孫子/重孫子等等

 

      

  div p{

            color:red;

        }

..........省略代碼......

<div>

    <ul>

        <li><p>重孫子標簽p,試一試</p></li>

    </ul>

</div>

 


(3)後代選擇器不僅僅可以使用標簽名稱,還可以使用其他選擇器(這個性質更具擴展性,代表div下麵一堆各種標簽都統一了格式,選擇器樣式會有這麼就是為了減輕我們的編碼負擔,能夠適配各種場景,找到最優解)

一個id的例子:

 

     

   #test1 p{

            color:blue;

        }

 ..........省略代碼......      

<div id="test1" class="test2">

    <p>我是紅的1</p>

    <p>我是紅的2</p>

</div>

 


另一個class的例子:

 

       

 .test2{

            color:green;

        }

 ..........省略代碼......      

<div id="test1" class="test2">

    <p>我是紅的1</p>

    <p>我是紅的2</p>

</div>

 


(4)div標簽裡面的標簽也可以使用id,class屬性也都能搭配

格式:只演示id的,class的把#換成.就行了

 

#div的id名稱   #div裡面的標簽的id名稱{

        屬性:名稱;

        }

 

 

(5)div標簽可以向下無限延伸

格式:

 

div ul li p{

    屬性:值:

}

 

 

例如:

 

     

   div ul li p{

            color:red;

        }

    </style>

</head>

<body>

<p>我是段落1</p>

<div id="test1" class="test2">

    <p>我是紅的1</p>

    <p>我是紅的2</p>

    <ul>

        <li><p>重孫子標簽p,試一試</p></li>

    </ul>

</div>

 


二、源碼:

d70_id_selector&class_selector

d71_posterity_selector

地址:

https://github.com/ruigege66/HTML_learning/tree/master

2.CSDN:https://blog.csdn.net/weixin_44630050(心悅君兮君不知-睿)

3.博客園:https://www.cnblogs.com/ruigege0000/

4.歡迎關註微信公眾號:傅里葉變換,後臺回覆“禮包”獲取Java大數據學習視頻禮包

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • MySQL——在Windows下安裝MySQL 摘要:本文主要說明瞭如何下Windows環境下安裝MySQL。 查看電腦上是否安裝了MySQL 打開cmd視窗,輸入 services.msc 命令,等待服務界面打開: 如果能在服務中找到MySQL服務,則說明系統已經安裝了MySQL: 下載並安裝 下 ...
  • 本文主要記錄了在使用MySQL的過程中遇到的問題以及解決方案。 ...
  • --笛卡爾集select empno,ename, 員工表.deptno, 部門表.deptno, dname from 部門表, 員工表; --添加合適的條件,可以避免笛卡爾集,從而得到正確的多表查詢記錄select empno,ename, 員工表.deptno, 部門表.deptno, dna ...
  • MySQL distributions on Unix and Unix like system include a script named mysql.server , which starts the MySQL server using mysqld_safe. It can be used ...
  • 1、創建數據表 基本語法:create table 表名(欄位名 欄位類型 [欄位屬性], 欄位名 欄位類型 [欄位屬性],…) [表選項] 範例:創建數據表 以上錯誤說明:表必須放到對應的資料庫下:有兩種方式可以將表掛入到指定的資料庫下. (1) 在數據表名字前面加上資料庫名字,用“.”連接即可: ...
  • 大數據時代的到來,讓政府、企業看到了數據資產的價值,並快速開始探索應用場景和商業模式、建設技術平臺。但是,如果在大數據拼圖中遺忘了數據治理,那麼做再多的業務和技術投入也是徒勞的,因為很經典的一句話:Garbage in Garbage out。 當你處理或使用過大量數據,那麼對“數據治理”這個詞你一 ...
  • 問題:在資料庫腳本開發中,有時需要生成一堆連續數字或者日期,例如yearly report就需要連續數字做年份,例如daily report就需要生成一定時間範圍內的每一天日期。而自帶的系統表master..spt_values存在一定的局限性,只是從0到2047(驗證腳本:select * fro ...
  • 版權聲明:本文為xing_star原創文章,轉載請註明出處! 本文同步自http://javaexception.com/archives/162 近期發現了一個很好的開源項目,可以給自己的app添加微信/支付寶轉賬打賞的功能,就給自己的app添加了此功能,發現用法簡單,真的很棒。 github地址 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...