y zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=9849
::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+):
如果是普通的HTML標簽元素,例如 <div> 元素想要使用 ::marker 偽元素,可以設置 display 為 list-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偽元素
其中:
和::first-letter偽元素、::first-line偽元素類似, ::marker 偽元素僅支持部分的CSS屬性,具體如下:
其中,支持 animation 和 transition 屬性著實讓我意外了一番,這在字符性質的偽元素中還是很少見的。
不過, ::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(作者張鑫旭)
我在 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表單、表單元素)
*請認真填寫需求信息,我們會在24小時內與您取得聯系。