整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          CSS --marker偽元素簡介

          CSS ::marker偽元素簡介

          y zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=9849

          一、了解::marker偽元素

          ::marker 是CSS中新出的一種偽元素,用來匹配列表項中的“標記盒子”(盒模型中的一種,《CSS世界》中有介紹),并可以設置標記盒子里面的內容以及與字符顯示相關的UI。

          可以匹配任意設置了 display:list-item 的元素或偽元素,例如大家比較熟悉的 <li> 元素就可以直接使用::marker偽元素改變項目符號顏色、字號字體、甚至內容。

          例如:

          <ol>
              <li>有序列表</li>
              <li>作者張鑫旭</li>
              <li>看看序號的顏色?</li>
          </ol>
          ::maker {
              color: deepskyblue;
              font-weight: bold;
          }

          實時效果如下所示(Chrome 86+):

          1. 有序列表
          2. 作者張鑫旭
          3. 看看序號的顏色?

          普通元素應用::marker

          如果是普通的HTML標簽元素,例如 <div> 元素想要使用 ::marker 偽元素,可以設置 displaylist-item ,代碼示意:

          <div class="marker">summary元素有自己的marker偽元素</div>

          可以使用如下所示的CSS代碼讓DIV元素有自己的標記:

          div.marker {
            display: list-item;
            margin-left: 1em;
            padding-left: 5px;
          }
          div.marker::marker {
            content: '?';
          }

          實時渲染效果如下(左側應該是個三角尖頭,如果瀏覽器不支持會是一個圓點,如果什么都沒有,您訪問的是盜版):

          summary元素有自己的marker偽元素

          其中:

          • content:'?' 不是必須的,默認就會創建符號‘·’作為項目符號,如下圖所示。
          • margin-left:1em 也不是必須的,可以設置 list-style-position:inside 讓項目符號字符的位置在標簽內。
          • 標記字符可以是任意字符,數量也不限,例如:div.marker::marker { content: '→→→→→'; }此時的效果是下面這幅模樣:注意,Safari瀏覽器目前還不支持 content 自定義標記符號,僅支持 list-style-type 屬性設置標記符號,是時候祭出這張十幾年的老圖了。

          二、只支持部分CSS

          和::first-letter偽元素、::first-line偽元素類似, ::marker 偽元素僅支持部分的CSS屬性,具體如下:

          • 所有font相關的屬性,例如 font-sizefont-family 等,但是不包括 line-height 屬性。
          • white-space 屬性;
          • text-shadow 屬性(僅Chrome支持),其他text相關屬性并不支持;
          • letter-spacingword-spacing 屬性(僅Chrome支持);
          • color 屬性;
          • text-combine-uprightunicode-bididirection 屬性,這幾個屬性與文字排版方位相關;
          • content 屬性,Safari目前不支持
          • 所有動畫和過渡相關的CSS屬性,也就是 animationtransition 屬性;

          其中,支持 animationtransition 屬性著實讓我意外了一番,這在字符性質的偽元素中還是很少見的。

          不過, ::marker 偽元素支持的CSS屬性里面支持動畫的CSS屬性并不多,也就是 color 屬性能用用,因此,潛力一般般,完全沒有 ::before::after 這兩個偽元素支持動畫和過渡來得給力。

          然后Firefox瀏覽器雖然很早就支持了 ::marker 偽元素,但是 ::marker 支持動畫是80這個版本才開始支持的,剛支持沒多久,還很熱乎。

          使用示意:

          .marker {
            display: list-item;
          }
          .marker::marker {
            transition: color .2s;
            content: '?';
          }
          .marker:hover::marker {
            color: deepskyblue;
          }

          效果參見下面的GIF錄屏:

          //zxx: 如果你看到這段文字,說明你現在訪問是體驗糟糕的垃圾盜版網站,你可以訪問原文獲得很好的體驗:https://www.zhangxinxu.com/wordpress/?p=9849(作者張鑫旭)

          三、::before/::after中使用::marker

          我在 CSS Pseudo-Elements Module Level 4規范 中找到這么一句話:

          The ::before::marker or ::after::marker selectors are valid and can be used to represent the marker boxes of ::before or ::after pseudo-elements that happen to be list items. However ::marker::marker is invalid, and the computed value of display on ::marker loses its list-item aspect.
          

          意思是 ::before::marker::after::marker 選擇器都是合法的,只需要 ::before::after 是列表項,也就是 display 計算值是 list-item

          我勒個擦,這要是支持了可就牛逼大了, content 嵌套啊,可以做的事情那就多了呀,相當于任意元素的前后又多了一層偽元素,理論上,一層標簽里面呈現的文字可以有5種不同的顏色,于是我火速整了個demo看看效果如何,究竟支不支持。

          您可以狠狠地點擊這里: ::before/::after中使用::marker偽元素demo

          測試代碼如下:

          <div class="target">一個標簽5種顏色</div>
          .target::before {
              content: '左邊符號顏色是?';
              display: list-item;
              list-style-position: inside;
              color: deepskyblue;
          }
          .target::before::marker {
              color: red;
          }
          .target::after {
              content: '右邊符號顏色是?';
              display: list-item;
              list-style-position: inside;
              color: olive;
          }
          .target::before::marker {
              content: '橙色';
              color: orange;
              direction: rtl;
          }

          結果頁面刷新一看……失望,只有3種顏色!

          DOM中有 ::marker 元素標記,但是沒有任何匹配,連瀏覽器默認的樣式都沒有匹配。

          這妥妥的欺騙純情少年的感情啊!

          明明規范說支持的,結果就像凌晨3點的菜市場——什么也沒有!而且沒有一個瀏覽器支持。

          想起了一句詩,“王師北定中原日,家祭無忘告乃翁”,唉,什么時候上面的demo頁面變成5種顏色了,大家記得知會我一聲,我撒個花慶祝一下。

          四、兼容性

          目前,所有現代瀏覽器均已經支持了 ::marker 偽元素( 實時兼容性 ),Chrome瀏覽器也是最近幾個月才支持的,很新鮮很熱乎。

          終于有辦法可以讓項目列表的符號的顏色和正文顏色不一樣咯,用起來,漸進增強,不要擔心瀏覽器不支持。

          本文為原創文章,歡迎分享,勿全文轉載,如果實在喜歡,可收藏,永不過期,且會及時更新知識點及修正錯誤,閱讀體驗也更好。

          本文地址: https://www.zhangxinxu.com/wordpress/?p=9849


          者:sunshine小小倩

          轉發鏈接:https://juejin.im/post/592d4a5b0ce463006b43b6da

          一篇:Java 0基礎入門(初識Html)

          1.文本相關標簽--標題標簽

          <h#></h#>:一般用來創建各級不同的標題,其中#的值可以為1-6中的值

          代碼<h1>Hello Java</h1>
          <h2>Hello Java</h2>
          <h3>Hello Java</h3>
          <h4>Hello Java</h4>
          <h5>Hello Java</h5>
          <h6>Hello Java</h6>
          <h7>Hello Java</h7>

          代碼請放在body中,然后再運行。

          還不清楚Html結構的,請看上一篇文章。

          運行結果如下:


          標題標簽運行結果

          字體大小隨著#值變大而變小

          h標簽會自動換行

          當#的值超過6以后,就直接顯示成了普通文本。

          2.文本相關標簽--特殊符號

          空格

          小于(<) <

          大于(>) >

          版權號(? ) ?

          注冊符(?) ?

          3.文本相關標簽--行的控制

          段落標簽<p>xxx</p>

          相當于在頁面中預留了一行空行,xxx是你在這個空行中填寫的內容

          換行標簽<br>

          ps:注意標簽分為成對出現的和自閉合標簽,書寫時要注意規范

          <!DOCTYPE html>
          <html>
          	<head>
          		<meta charset="UTF-8">
          		<title></title>
          	</head>
          	<body>
          		
          		<p>
          			<h1>是一級標題
          		</p>
          		<p>
          			<h2>是二級標題
          		</p>
          		<h3>是三級標題
          		<br>
          		<h4>是四級標題
          		
          	</body>
          </html>

          3.圖像標簽

          基本用法:

          <img src="img1.jpg" width="100px" height="200px" alt=”” title=””/>

          src--圖片的路徑(相對路徑的寫法../)

          width--圖片顯示時的寬度(不一定是實際),像素為單位,px可以不寫

          height--圖片顯示時的高度(不一定是實際),像素為單位,px可以不寫

          alt,title--鼠標放在圖片上顯示的文字,幾乎每個標簽都可以加這兩個屬性,圖片不存在時,圖片位置顯示設定的文字

          <!DOCTYPE html>
          <html>
          
          	<head>
          		<meta charset="UTF-8">
          		<title></title>
          	</head>
          
          	<body>
          		<!--
              		src屬性:當前圖片的路徑
              		路徑:
              		(1)絕對路徑:一個完整的路徑,從ip開始到文件名結束
              		(2)相對路徑:要引用的圖片資源相對于當前頁面的路徑
              		
              		width屬性:顯示的寬度
              		heigth屬性:顯示的高度
              		1.如果只給定寬度或高度,那么另外一個高度或寬度的值
              		會根據原圖的寬高比進行自動計算
              		2.如果同時給定了寬度和高度,并且不符合原圖的比例,
              		那么就會失真
          
              	-->
              	<!--絕對路徑-->
          		<img src="http://zt.tgbus.com/ff15coming/assets/images/bg_02.jpg" width="500px"/>
          		<!--相對路徑,圖片和文件在同一目錄下-->
          		<img src="001.jpg" height="300px"/>
          		<!--相對路徑,圖片所在的目錄和頁面同一級-->
          		<img src="img/002.jpg" width="100px" height="500px"/>
          		
          		
          		<!--
          			alt/title:
          			(1)鼠標放在對應圖片上時能夠顯示出對應的說明性文字
          			(2)當圖片不存在時,會在原來顯示圖片的地方加上說明性文字
          			(3)alt/title在不同瀏覽器中可能有兼容性問題,所以一起寫,作用是一樣的
          			(4)后面學習的標簽中都可以加上這兩個屬性,來作為鼠標放上去時的說明
          		-->
          		<img src="img/002.jpg" alt="圖片002" title="圖片002"/>
          		<img src="img1111/002.jpg" alt="圖片002" title="圖片002"/>
          	</body>
          
          </html>

          4.文字布局--內容分隔標簽

          用于在頁面上繪制水平線

          <hr size="5" color="red" width="300" align="left">

          <hr size="10" color="black" width="200">

          <hr size="5" color="#0000FF" width="50%" align="right">

          size--線的厚度

          color--線的顏色,顏色的寫法支持多種形式

          width--線的寬度

          align--對齊方式(盡可能使用后面學習的CSS樣式來對齊)

          <!DOCTYPE html>
          <html>
          	<head>
          		<meta charset="UTF-8">
          		<title></title>
          	</head>
          	<body>
          		第一行
          		<!--分隔標簽-->
          		<hr/>
          		第二行
          		
          		<!--
          			size:線的厚度
          			color:線的顏色
          			align:對齊方式 left right
          			width:線的寬度(像素,相對于外部元素寬度的百分比)
          		-->
          		<hr size="5" color="red" width="300" align="left"/>
          		<hr size="5" color="#FF1493" width="30%" align="right"/>
          		<hr color="#D84D2A" />
          	</body>
          </html>
          

          5.文字布局--項目列表和編號(有序列表)

          <ol type="1">

          <li>填寫信息</li>

          <li>收電子郵件</li>

          <li>注冊成功</li>

          </ol>

          type值:(改變序號類型)

          1:效果1,2,3,4……

          a:效果a,b,c,d

          A:效果A,B,C,D

          i:效果i,ii,iii,iv,v

          I:效果I,II,III,IV,V

          <!DOCTYPE html>
          <html>
          	<head>
          		<meta charset="UTF-8">
          		<title></title>
          	</head>
          	<body>
          		<!--
          			type屬性:
          				1  阿拉伯數字作為序號
          				a 小寫字母作為序號
          				A 大寫字母作為序號
          				i 羅馬數字的小寫形式
          				I 羅馬數字的大寫形式
          		-->
          		<ol type="I">
          			<li>第一項</li>
          			<li>第二項</li>
          			<li>第三項</li>
          			<li>第四項</li>
          			<li>第五項</li>
          			<li>第六項</li>
          		</ol>
          	</body>
          </html>

          6.文字布局--項目列表和編號(無序列表)

          <ul type="circle">

          <li>如何激活會員名?</li>

          <li>如何注冊淘寶會員?</li>

          <li>注冊時密碼設置有什么要求?</li>

          <li>支付寶認證</li>

          </ul>

          type值:

          disc:效果——實心黑色小圓點

          square:效果——實心黑色小方塊

          circle:效果——空心小圓點

          <!DOCTYPE html>
          <html>
          	<head>
          		<meta charset="UTF-8">
          		<title></title>
          	</head>
          	<body>
          		<!--
          			type屬性取值:
          				circle:空心圈
          				disc:實心圓
          				square:正方形
          		-->
          		<ul type="circle">
          			<li>第一項</li>
          			<li>第二項</li>
          			<li>第三項</li>
          			<li>第四項</li>
          			<li>第五項</li>
          			<li>第六項</li>
          		</ul>
          	</body>
          </html>
          

          7.預格式文本標簽

          pre:pre 元素可定義預格式化的文本。被包圍在 pre 元素中的文本通常會保留空格和換行符。而文本也會呈現為等寬字體。

          <pre> 標簽的一個常見應用就是用來表示計算機的源代碼

          8.頁面鏈接

          <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。最重要的是href屬性,用于指定要跳轉的頁面的路徑。

          相對路徑:指定從根目錄到文件的完整路徑。

          絕對路徑:指定相對于當前文件的文件位置。

          <!DOCTYPE html>
          <html>
          	<head>
          		<meta charset="UTF-8">
          		<title></title>
          	</head>
          	<body>
          		<!--
                  	<a></a>:頁面鏈接
                  	如果沒有給定href屬性,那么a標簽之間的內容以普通文本方式顯示
                  	href:用來指定當前鏈接要跳轉的路徑
                  	路徑可以是相對路徑也可以是絕對路徑
               
                  -->
          		<a href="http://www.baidu.com" >百度</a>
          		<a href="圖像標簽.html">圖像標簽</a>
          		
          		<!--圖片鏈接-->
          		<a href="http://zt.tgbus.com/ff15coming/">
          			<img src="http://zt.tgbus.com/ff15coming/assets/images/bg_02.jpg" width="500px"/>
          		</a>
          		
          		<!--
          			阻止鏈接的跳轉行為
          		-->
          		<a href="#">淘寶</a>
          		<!--了解-->
          		<a href="javascript:void(0);">京東</a>
          	</body>
          </html>
          

          使用a標簽制作錨點,實現跳轉到頁面指定位置

          (1)本頁跳轉(頁面很長,內容很多,點擊a標簽內容,迅速定位到你要找的內容)

          <!--定義a標簽,跳轉到指定錨點-->

          <a href="#helpme">[新人上路]</a>

          <!--定義一個錨點,給定name屬性-->

          <a name="helpme">新人上路指南</a>

          (2)其它頁跳轉(定位到1.html這種不是本頁面的,a標簽name值為t2的內容處)

          <a href="1.html#t2">[新人上路]</a>

          <!DOCTYPE html>
          <html>
          	<head>
          		<meta charset="UTF-8">
          		<title></title>
          	</head>
          	<body>
          		<!--
          			1.定義要進行點擊的鏈接
          		-->
          		<a href="#position1">位置1</a>
          		<a href="#position2">位置2</a>
          		<a href="#position3">位置3</a>
          		<!--
          			2.要跳轉的位置
          		-->	
          		<br><br><br><br><br><br><br><br><br><br><br><br><br>
          		<br><br><br><br><br><br><br><br><br><br><br><br><br>
          		<a name="position1">位置1</a>
          		<br><br><br><br><br><br><br><br><br><br><br><br><br>
          		<br><br><br><br><br><br><br><br><br><br><br><br><br>
          		<a name="position2">位置2</a>
          		<br><br><br><br><br><br><br><br><br><br><br><br><br>
          		<br><br><br><br><br><br><br><br><br><br><br><br><br>
          		<p id="position3">位置3</p>
          		<br><br><br><br><br><br><br><br><br><br><br><br><br>
          		<br><br><br><br><br><br><br><br><br><br><br><br><br>
          	</body>
          </html>
          

          使用a標簽打開電子郵件發送窗口

          這個方法是調用outlook客戶端,現在已經很少用了!

          在href前面加上mailto前綴,后面跟合法的郵箱地址

          <a href="mailto:429661318@qq.com">

          發送郵件

          </a>

          指定超鏈接在何處打開目標 URL

          在href屬性存在的情況下,指定target屬性

          _blank:在空白頁打開

          _self:直接在本頁打開

          <!DOCTYPE html>
          <html>
          	<head>
          		<meta charset="UTF-8">
          		<title></title>
          	</head>
          	<body>
          		<!--
          			target屬性:指定頁面的打開的地方
          				_self:在當前頁打開
          				_blank:在空白頁打開
          		-->
          		<a href="http://www.baidu.com" target="_self">在當前頁打開</a>
          		<a href="http://www.baidu.com" target="_blank">在空白頁打開</a>
          	</body>
          </html>

          標簽的學習就到這,下一篇會介紹表單、表單元素的寫法。喜歡的可以關注下,謝謝!!

          下一篇:Java 0基礎入門 (Html表單、表單元素)


          主站蜘蛛池模板: 三级韩国一区久久二区综合| 国产在线视频一区| 无码欧精品亚洲日韩一区| 亚无码乱人伦一区二区| 2022年亚洲午夜一区二区福利| av无码人妻一区二区三区牛牛 | 一区二区三区在线视频播放| 无码人妻AⅤ一区二区三区| 日韩精品一区二区三区毛片| 国产一区二区三区韩国女主播| 精品日韩在线视频一区二区三区 | 2020天堂中文字幕一区在线观| 无码丰满熟妇浪潮一区二区AV | 一本一道波多野结衣AV一区| 亚洲av无码一区二区三区不卡| A国产一区二区免费入口| 国产91大片精品一区在线观看| 亚洲综合一区国产精品| 久久亚洲一区二区| 日本一区高清视频| 男女久久久国产一区二区三区| 一区二区三区在线观看免费| 亚洲av日韩综合一区在线观看| 激情无码亚洲一区二区三区| 熟妇人妻一区二区三区四区| 欧美日韩精品一区二区在线视频 | 97久久精品午夜一区二区| 亚洲综合无码精品一区二区三区| 久久精品亚洲一区二区三区浴池| 亚洲av无码一区二区三区天堂古代 | 国产成人无码精品一区在线观看| 一区二区三区视频在线| 久久国产一区二区| 久久青草国产精品一区| 久久国产一区二区三区| 国产在线精品一区二区| 人妻AV中文字幕一区二区三区| 亚洲Av无码国产一区二区| 成人区精品人妻一区二区不卡| 成人H动漫精品一区二区| 精品日韩一区二区|