日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

利用屬性選擇器對外部鏈接進行樣式設計

來源: 責編: 時間:2023-11-30 09:26:09 245觀看
導讀你可能會注意到,你訪問的一些網站上的外部鏈接旁邊會顯示一個小圖標。這對用戶來說非常有幫助,因為它讓他們知道這個鏈接會將他們帶到站點外部。我們可以簡單地使用屬性選擇器來實現外部鏈接的自定義樣式。使用屬性選擇

你可能會注意到,你訪問的一些網站上的外部鏈接旁邊會顯示一個小圖標。這對用戶來說非常有幫助,因為它讓他們知道這個鏈接會將他們帶到站點外部。dr828資訊網——每日最新資訊28at.com

我們可以簡單地使用屬性選擇器來實現外部鏈接的自定義樣式。dr828資訊網——每日最新資訊28at.com

使用屬性選擇器

CSS 允許我們根據 HTML 元素的屬性來設置樣式,方法是將它們放在方括號中。例如,我們可以為具有 hidden 屬性的任何元素設置 display 屬性為 none:dr828資訊網——每日最新資訊28at.com

[hidden] {  display: none;}

我們還可以在屬性等于特定值時設置元素的樣式。對于表單元素,我們可以為特定輸入類型設置樣式,而不必使用類:dr828資訊網——每日最新資訊28at.com

input[type='checkbox'] {  accent-color: deeppink;}

對于我們的外部鏈接,當 href 屬性包含指向外部網站的鏈接時,我們想要應用樣式。我們不知道確切的值是什么(并且在樣式表中添加每個單獨的 URL 是不切實際的!),但我們知道內部鏈接(指向站點上其他帖子的鏈接)將以斜杠開頭,而外部鏈接將以 https:// 開頭。因此,我們可以只為以 http 開頭的鏈接設置樣式,通過在我們的屬性選擇器中插入一個 ^ 字符:dr828資訊網——每日最新資訊28at.com

a[href^='http'] {  /* 外部鏈接的樣式 */}

或者我們可以使用其他運算符來確定不同的樣式條件:dr828資訊網——每日最新資訊28at.com

/* 準確匹配 URL */a[] {}/* URL 中任何位置有 'css' */a[href*='css'] {}/* 以 .info 結尾 */a[href$='.info'] {}/* 類中包含單詞 'link' */a[class~='link'] {}

此外,通過在結束括號前添加 s 或 i,我們可以控制它們是區分大小寫還是不區分大小寫地比較:dr828資訊網——每日最新資訊28at.com

/* 區分大小寫 */a[href*='css-irl' s] {}/* 不區分大小寫 */a[href*='css-irl' i] {}

設置偽元素的樣式

對于我們的外部鏈接,我們將通過設置偽元素的樣式來附加一個圖標。這里我們使用 content 屬性和一個 base64 編碼的 SVG,因為圖標非常簡單。但你也可以使用一個圖像 URL、另一個字符或表情符號。我們可以添加一個小邊距,使其稍微遠離文本。dr828資訊網——每日最新資訊28at.com

a[href^='http']::after {  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewbox='0 0 12.2 12.2' width='14' height='14'%3E%3Cpath d='M5.7 0v1.5h4L4.5 6.7l1 1.1 5.3-5.2v3.9h1.4V0z'/%3E%3Cpath fill='none' d='M3.4 6.7l3-2.9H1.5v7h7V5.9l-3 2.9z'/%3E%3Cpath d='M8.5 5.9v4.9h-7v-7h4.9l1.5-1.6H0v10h10V4.4z'/%3E%3C/svg%3E");  margin-left: 0.25em;}

使用 content 屬性和 SVG 的一個問題是我們無法完全控制圖標的大小。它使用 SVG 的固有尺寸。如果我們想將圖標應用于任何外部鏈接,而不考慮字體大小(例如標題),我們可能更適合使用 background-image 屬性。我們可以設置寬度和高度(以 em 為單位,它們相對于字體大小),并使用 background-size 確保我們的 SVG 覆蓋整個區域。dr828資訊網——每日最新資訊28at.com

我們需要將 content 屬性設置為空字符串,否則偽元素不會渲染。我們還需要將 display 屬性設置為 inline-block。dr828資訊網——每日最新資訊28at.com

(注:我使用了自定義屬性來簡化圖像 URL 的表示。)dr828資訊網——每日最新資訊28at.com

a[href^='http']::after {  content: '';  display: inline-block;  width: 1em;  height: 1em;  margin-left: 0.25em;  background-size: 100%;  background-image: url(--var(svgUrl));}

防止孤立圖標

這種方法還有一點可以改進。目前,圖標可能會換行到文本的下一行,留下一個不受歡迎的孤立圖標。dr828資訊網——每日最新資訊28at.com

圖片圖片dr828資訊網——每日最新資訊28at.com

如果我們對偽元素添加 position: absolute,并對錨元素添加一些右側填充,則圖標將不會單獨換行。dr828資訊網——每日最新資訊28at.com

圖片圖片dr828資訊網——每日最新資訊28at.com

a[href^='http'] {  padding-right: 1.25em;}a[href^='http']::after {  position: absolute;  content: '';  display: inline-block;  width: 1em;  height: 1em;  margin-left: 0.25em;  background-size: 100%;  background-image: url(--var(svgUrl));}

不幸的是,這個技巧在最新版本的 Chrome 中不起作用。dr828資訊網——每日最新資訊28at.com

以下是完整代碼:dr828資訊網——每日最新資訊28at.com

*, *::before, *::after {  box-sizing: border-box;}body {  font-family: 'Helvetica', sans-serif;  line-height: 1.6;  margin: 0;  padding: 1em;}.container {  max-width: 380px;  overflow: hidden;  padding: 1rem;  border: 1px solid;  resize: horizontal;}a {  color: inherit;}a[href^='http'] {  padding-right: 1.25em;  background: pink;}a[href^='http']::after {  position: absolute;  content: '';  display: inline-block;  width: 1em;  height: 1em;  margin-left: 0.25em;  background-size: 100%;  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewbox='0 0 12.2 12.2' width='14' height='14'%3E%3Cpath d='M5.7 0v1.5h4L4.5 6.7l1 1.1 5.3-5.2v3.9h1.4V0z'/%3E%3Cpath fill='none' d='M3.4 6.7l3-2.9H1.5v7h7V5.9l-3 2.9z'/%3E%3Cpath d='M8.5 5.9v4.9h-7v-7h4.9l1.5-1.6H0v10h10V4.4z'/%3E%3C/svg%3E");  transform: translateY(0.25em);}

本文鏈接:http://www.www897cc.com/showinfo-26-35253-0.html利用屬性選擇器對外部鏈接進行樣式設計

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 我們聊聊從頭學服務器組件:在導航間保留狀態

下一篇: 消息隊列批量收發消息,請避開這五個坑!

標簽:
  • 熱門焦點
  • K60至尊版剛預熱 一加Ace2 Pro正面硬剛

    Redmi這邊剛如火如荼的宣傳了K60 Ultra的各種技術和硬件配置,作為競品的一加也坐不住了。一加中國區總裁李杰發布了兩條微博,表示在自家的一加Ace2上早就已經采用了和PixelWo
  • 如何正確使用:Has和:Nth-Last-Child

    我們可以用CSS檢查,以了解一組元素的數量是否小于或等于一個數字。例如,一個擁有三個或更多子項的grid。你可能會想,為什么需要這樣做呢?在某些情況下,一個組件或一個布局可能會
  • 三言兩語說透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是兩種很有用的技術,可以幫助我們寫出更加優雅、泛用的函數。本文將首先介紹柯里化和反柯里化的概念、實現原理和應用
  • 多線程開發帶來的問題與解決方法

    使用多線程主要會帶來以下幾個問題:(一)線程安全問題  線程安全問題指的是在某一線程從開始訪問到結束訪問某一數據期間,該數據被其他的線程所修改,那么對于當前線程而言,該線程
  • 一個注解實現接口冪等,這樣才優雅!

    場景碼猿慢病云管理系統中其實高并發的場景不是很多,沒有必要每個接口都去考慮并發高的場景,比如添加住院患者的這個接口,具體的業務代碼就不貼了,業務偽代碼如下:圖片上述代碼有
  • 阿里瓴羊One推出背后,零售企業迎數字化新解

    作者:劉曠近年來隨著數字經濟的高速發展,各式各樣的SaaS應用服務更是層出不窮,但本質上SaaS大多局限于單一業務流層面,對用戶核心關切的增長問題等則沒有提供更好的解法。在Saa
  • 三星獲批量產iPhone 15全系屏幕:蘋果史上最驚艷直屏

    按照慣例,蘋果將繼續在今年9月舉辦一年一度的秋季新品發布會,有傳言稱發布會將于9月12日舉行,屆時全新的iPhone 15系列將正式與大家見面,不出意外的話
  • 7月4日見!iQOO 11S官宣:“雞血版”驍龍8 Gen2+200W快充加持

    上半年已接近尾聲,截至目前各大品牌旗下的頂級旗艦都已悉數亮相,而下半年即將推出的頂級旗艦已經成為了數碼圈爆料的主流,其中就包括全新的iQOO 11S系
  • 2299元起!iQOO Pad明晚首銷:性能最強天璣平板

    5月23日,iQOO如期舉行了新品發布會,除了首發安卓最強旗艦處理器的iQOO Neo8系列新機外,還在發布會上推出了旗下首款平板電腦——iQOO Pad,其最大的賣點
Top 主站蜘蛛池模板: 藁城市| 繁峙县| 枣庄市| 内乡县| 柞水县| 启东市| 睢宁县| 太湖县| 梅河口市| 桦甸市| 凤阳县| 襄垣县| 阜南县| 综艺| 嵊州市| 会宁县| 永善县| 金秀| 乐安县| 定兴县| 庆安县| 凤台县| 乐东| 峨边| 明水县| 延川县| 古田县| 阿荣旗| 鄄城县| 株洲县| 易门县| 湘潭县| 聂荣县| 左云县| 永康市| 九龙城区| 丽水市| 高陵县| 张家口市| 青阳县| 姜堰市|