家好,我是前端西瓜哥。
前段時(shí)間實(shí)現(xiàn)了個(gè)自定義無(wú)序列表樣式,踩了一些坑,和大家說(shuō)說(shuō)。
設(shè)計(jì)師說(shuō)我們這個(gè),列表項(xiàng)樣式要優(yōu)化一下,太丑了,這個(gè)原點(diǎn)要大一點(diǎn)。
默認(rèn)的無(wú)序列表樣式是這樣的。
<style>
ul {
width: 200px;
border: 1px solid #555;
font-size: 13px;
line-height: 20px;
color: #2362d6;
}
</style>
<ul>
<li>我是第一行。</li>
<li>你是第二行你是第二行你是第二行你是第二行你是第二行</li>
<li>三</li>
</ul>
雖然覺(jué)得有點(diǎn)花里胡哨,但我還是去研究了,看看怎么給圓點(diǎn)變大一點(diǎn)。
我們先將 li 原有的圓點(diǎn)去掉,通過(guò)給 li 加上 list-style: none; 的方式。
然后用 ::before 給 li 前面創(chuàng)建一個(gè)偽元素,加上圓點(diǎn)字符。
ul {
/* ... */
/* 稍微調(diào)整一下 ul 的左邊距 */
padding-inline-start: 20px;
}
li {
list-style: none;
}
li::before {
/* 這里加兩個(gè)空白符作為邊距 */
/* 你也可以用 margin-right */
content: "\2022 ";
font-size: 22px;
}
這里我給 content 的值末尾加了兩個(gè)空格符,來(lái)實(shí)現(xiàn)右邊距效果。你也可以用 margin-right 來(lái)做,更正規(guī)一些。
注意點(diǎn):這里 content 的值最好用轉(zhuǎn)義字符,不要用原字符,因?yàn)槲野l(fā)現(xiàn)在某些瀏覽器會(huì)亂碼。
圓點(diǎn)沒(méi)和文字水平居中對(duì)齊,我們用 transform 微調(diào)一下位置。
需要注意的一點(diǎn)是,transform 對(duì)行內(nèi)元素(display: inline)無(wú)效。而 ::before 偽元素默認(rèn)為行內(nèi)元素,需要手動(dòng)改為 inline-block。
完整寫(xiě)法為:
ul {
width: 200px;
border: 1px solid #555;
font-size: 13px;
line-height: 20px;
color: #2362d6;
padding-inline-start: 20px;
}
li {
list-style: none;
}
li::before {
content: "\2022 ";
display: inline-block;
font-size: 22px;
transform: translateY(3px);
}
設(shè)計(jì)師很滿(mǎn)意地離開(kāi)了。
但過(guò)了幾天,他發(fā)現(xiàn)有些不對(duì)勁,又跑過(guò)來(lái)和我說(shuō):不對(duì),這個(gè)換行的文字起始位置不應(yīng)該在圓點(diǎn)下邊,而是應(yīng)該和第一行文字左側(cè)對(duì)齊,也就是應(yīng)該像下面這樣。
問(wèn)題不大,馬上改。
將 ::before 偽元素設(shè)置為絕對(duì)定位,讓圓點(diǎn)脫離正常文檔流。這次我們用 left 來(lái)調(diào)整位置。
完整的寫(xiě)法為:
ul {
width: 200px;
border: 1px solid #555;
font-size: 13px;
line-height: 20px;
color: #2362d6;
padding-inline-start: 40px;
}
li {
position: relative;
list-style: none;
}
li::before {
content: "\2022 ";
position: absolute;
left: -11px;
display: inline-block;
font-size: 22px;
}
效果很完美,設(shè)計(jì)師很滿(mǎn)意地離開(kāi)了。
如果你不需要修改圓點(diǎn)大小,而是想替換為其他符號(hào),還用一種寫(xiě)法是使用 list-style-type 或 ::marker。
list-style-type 用在 ul 元素上。
ul {
width: 200px;
border: 1px solid #555;
font-size: 13px;
line-height: 20px;
color: #2362d6;
padding-inline-start: 20px;
list-style-type: "\2708"; /* 飛機(jī)符號(hào) */
}
然后我們看到原點(diǎn)變成了飛機(jī)字符:
::marker 則是用在 li 元素上,可以讓不同的 li 使用不用樣式。
li::marker {
content: "\2708";
}
更具體的寫(xiě)法這里就不展開(kāi)講了,讀者可以自行閱讀官方文檔。
但這種方案在修改圓點(diǎn)大小后,無(wú)法使用 transform 進(jìn)行位置的調(diào)整,所以我沒(méi)有用這個(gè)。
小小的無(wú)序列表自定義樣式也挺多門(mén)道的,希望對(duì)你有所幫助。
我是前端西瓜哥,分享前端知識(shí),歡迎關(guān)注我。
下是一些常用的HTML網(wǎng)頁(yè)源代碼示例,這些示例可用作HTML文檔的基礎(chǔ):
1、創(chuàng)建一個(gè)簡(jiǎn)單的HTML文檔結(jié)構(gòu):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"content="width=device-width,initial-scale=1.0">
<title>My Web Page</title>
</head>
<body>
<h1>Hello,World!</h1>
<p>This is a simple HTML webpage.</p>
</body>
</html>
2、插入圖片:
<img src="image.jpg"alt="Description of the image">
3、創(chuàng)建超鏈接:
<a href="https://www.example.com">Visit Example.com</a>
4、創(chuàng)建無(wú)序列表:
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
5、創(chuàng)建有序列表:
<ol>
<li>First item</li>
<li>Second item</li>
<li>Third item</li>
</ol>
6、創(chuàng)建表格:
<table>
<tr>
<th>Header 1</th>
<th>Header 2</th>
</tr>
<tr>
<td>Row 1,Cell 1</td>
<td>Row 1,Cell 2</td>
</tr>
<tr>
<td>Row 2,Cell 1</td>
<td>Row 2,Cell 2</td>
</tr>
</table>
7、插入段落:
<p>This is a paragraph of text.</p>
8、插入換行符:
<p>This is some text.<br>This is on a new line.</p>
9、創(chuàng)建一個(gè)文本輸入框:
<input type="text"name="username"placeholder="Enter your username">
10、插入按鈕:
<button type="button">Click me</button>
這些示例代碼只是HTML的基礎(chǔ),HTML具有更豐富的功能和標(biāo)記選項(xiàng),可以根據(jù)需要進(jìn)行擴(kuò)展和定制。請(qǐng)根據(jù)您的具體需求,使用這些示例作為起點(diǎn),構(gòu)建您自己的網(wǎng)頁(yè)。
【名揚(yáng)銀河企業(yè)網(wǎng)站系統(tǒng)】
【免費(fèi)】提供企業(yè)【網(wǎng)站源碼】,簡(jiǎn)單易用,無(wú)須擁有代碼基礎(chǔ)。
歡迎留言或私信我們咨詢(xún)。
以上內(nèi)容由【名揚(yáng)銀河】企業(yè)網(wǎng)站系統(tǒng)原創(chuàng)發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
TML 基礎(chǔ)
非常簡(jiǎn)單的HTML文檔
HTML 標(biāo)題
HTML 段落
HTML 鏈接
HTML 圖片
實(shí)例解析
HTML 標(biāo)題
HTML 標(biāo)題
在html源碼中插入注釋
插入水平線
實(shí)例解析
HTML 段落
HTML 段落
更多段落
本例演示在 HTML 文檔中折行的使用。
HTML 格式化的某些問(wèn)題。
實(shí)例解析
HTML 文本格式化
文本格式化
此例演示如何使用 pre 標(biāo)簽對(duì)空行和空格進(jìn)行控制。
此例演示不同的"計(jì)算機(jī)輸出"標(biāo)簽的顯示效果。
此例演示如何在 HTML 文件中寫(xiě)地址。
此例演示如何實(shí)現(xiàn)縮寫(xiě)或首字母縮寫(xiě)。
此例演示如何改變文字的方向。
此例演示如何實(shí)現(xiàn)長(zhǎng)短不一的引用語(yǔ)。
文本下劃線與刪除線
實(shí)例解析
HTML 樣式
HTML Style 元素
背景色樣式
字體樣式,顏色,大小
文本對(duì)齊樣式
設(shè)置文本字體
設(shè)置文本字體大小
設(shè)置文本字體顏色
設(shè)置文本字體,字體大小,字體顏色
HTML使用不同樣式
沒(méi)有下劃線的鏈接
鏈接到一個(gè)外部樣式表
實(shí)例解析
HTML 鏈接
創(chuàng)建超級(jí)鏈接
將圖像作為鏈接
在新的瀏覽器窗口打開(kāi)鏈接
鏈接到同一個(gè)頁(yè)面的不同位置
跳出框架
創(chuàng)建電子郵件鏈接
創(chuàng)建電子郵件鏈接 2
實(shí)例解析
HTML 圖像
插入圖像
從不同的位置插入圖片
排列圖片
本例演示如何使圖片浮動(dòng)至段落的左邊或右邊。
制作圖像鏈接
創(chuàng)建圖像映射
實(shí)例解析
HTML 表格
簡(jiǎn)單的表格
沒(méi)有邊框的表格
表格中的表頭
帶有標(biāo)題的表格
跨行或跨列的表格單元格
表格內(nèi)的標(biāo)簽
單元格邊距(Cell padding)
單元格間距(Cell spacing)
實(shí)例解析
HTML 列表
無(wú)序列表
有序列表
不同類(lèi)型的有序列表
不同類(lèi)型的無(wú)序列表
嵌套列表
嵌套列表 2
定義列表
實(shí)例解析
HTML Forms 和 Input
創(chuàng)建文本域(Text fields)
創(chuàng)建密碼域
復(fù)選框
單選按鈕
簡(jiǎn)單的下拉列表
預(yù)選下拉列表
本例演示如何創(chuàng)建一個(gè)文本域(多行文本輸入控件)。
創(chuàng)建一個(gè)按鈕
本例演示如何在數(shù)據(jù)周?chē)L制一個(gè)帶標(biāo)題的框。
帶有文本域與輸入域的表單
帶有復(fù)選框與提交按鈕的form表單
帶有單選框與提交按鈕的表單
發(fā)送郵件表單
實(shí)例解析
HTML iframe
內(nèi)聯(lián)框架 (HTML頁(yè)面中插入框架)
實(shí)例解析
HTML 頭部元素
描述了文檔標(biāo)題
HTML頁(yè)面中默認(rèn)的URL鏈接
提供文檔元數(shù)據(jù)
實(shí)例解析
HTML 腳本
插入一個(gè)腳本
使用 <noscript> 標(biāo)簽
實(shí)例解析
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。