Pseudo-elements ::before, ::after 範例

xhtml
<strong class="amount">700</strong>
css
.amount::before {content:"$ ";}
.amount::after {content:" 萬元";}
原來只有 700 ,但加了 CSS 以後呈現會是
$ 700 萬元

思考 - ::before, ::after Pseudo-element Selectors 使用原則

:: 為 CSS3 擬元素的標準表示法,主要是為了與 : 的擬類別 (Pseudo-classes) 作區分,有別於原來 CSS2 兩者同樣使用 : 表示,目前較先進瀏覽器 (firefox, opera, safari, …) 均有支援。

::before 搭配 contnet 特性 (property) 雙引號內所指示的字元,可在 selectors 指定的元素最前加入該字串 (包括空格,如上例的 "$ "), CSS 因而將此字串視為一個元素,所以可以賦予該字串各種設計風格; ::after 一樣用法,不同的只是加在最後。可以把上例想像成加了兩個實際的元素,如:

xhtml
<strong class="amount"><span>$ </span>700<span> 萬元</span></strong>

另加一下 CSS 看看變化,

css
.amount {color:red;}

這樣會是整個 $ 700 萬元 都變成紅字,因為 ::before, ::after 所加入的字串擬元素,仍屬於 .amount 元素的內容,所以依據繼承性,擬元素 $, 萬元 也都是紅字了。稍微改變一下 CSS 看看:

css
.amount::before {content:"$ "; color:blue;}
.amount::after {content:" 萬元"; color:blue;}

這樣只有擬元素變成藍字,結果會像 $ 700 萬元,先前定義的紅字還是存在。 ::before::after 沒有限制兩個同時都要指定,也可以只指定一個前或一個後。

需要注意的是,以 ::before, ::after 配合 content 所產生的擬元素字串,會視為行內層級元素 (inline emements),也就是文字層級 (text-level) 。

至於 content 特性還有更有用的字串加入方式,由於撰文時大多瀏覽器支援不甚完全,以後再作討論,有興趣可先參考 W3C The content Property 說明。

时间: 2024-10-12 08:17:51

Pseudo-elements ::before, ::after 範例的相关文章

[DE2i-150] 重建PCIe_Fundmental範例說明

以下資料的整理主要是做備忘錄,避免以後忘了,順便留給需要的人. ========================================== 本文主要是參考友晶科技的DE2i-150光碟裡面的PCie_Fundmental範例,再重新打造一個新的範例程式. 1 // ============================================================================ 2 // Copyright (c) 2012 by Terasic

一次快速改寫 SQL Server 高效查詢的範例

最近線上系統突然出現匯出資料超過 10 筆時,查詢逾時的狀況,在仔細查找之後. 發現了問題原因,透過應用端與數據端兩邊同時調整,將查詢的效率提昇了約數百倍以上 首先,原本應用端的商務邏輯為每一分頁筆數固定為10筆,所以使用者最多可以匯出 10 筆資料 而且原本的商務邏輯是寫成這樣的 這段語法在 SQL Server 執行時,會轉換成以下的範例語法 (這裡 A 表 與 B表 為 1:N 關聯 ) SELECT LawNo,LCNo FROM A INNER JOIN B WHERE 1=1 AND

[CSS3] Target HTML Elements not Explicitly set in the DOM with CSS Pseudo Elements

Pseudo elements allow us to target elements that are not explicitly set in the DOM. Using ::before ::after we can actually create and manipulate elements in the DOM that do not impact the content. While ::first-letter ::first-line ::selection ::place

ASP.NET Web Forms 的 DI 應用範例

跟 ASP.NET MVC 与 Web API 比起来,在 Web Forms 应用程式中使用 Dependency Injection 要来的麻烦些.这里用一个范例来说明如何注入相依物件至 Web Forms 的 ASPX 页面. 使用的开发工具与类别库: Visual Studio 2013 .NET Framework 4.5 Unity 3.5.x 问题描述 基于测试或其他原因,希望 ASPX 网页只依赖特定服务的介面,而不要依赖具象类别. 假设首页 Default.aspx 需要一个传

Bat 循環執行範例

@echo off @echo Please key in runcount num. Info:max=100 set /p a= for /l %%i in (1,1,%a%) do ( echo RunCount= %%i start IMClient.exe AA ) pause

Qt官方教程翻译——Use Case - Visual Elements In QML

附网址:http://qt-project.org/doc/qt-5/qtquick-usecase-visual.html Use Case - Visual Elements In QML -- 用例 - QML中的可视化元素 The Rectangle Type -- 矩形 对于最基本的视觉元素,Qt Quick提供了Rectangle类型来绘制矩形.这些矩形可以使用纯色或渐变色来填充.Rectangle类型也可以绘制矩形的边界(borders). 要绘制矩形无法绘制的自定义形状,可以参考

用Razor語法寫範本-RazorEngine組件介紹【转——非常好,可以用它来代替NVelocity】

RazorEngine 官網網址:http://razorengine.codeplex.com 在找到RazorEngine之前曾經想過其他的方案,如T4與V8 Engine載jquery.template,但T4如果要獨立於MSBuild或Visual Studio執行有點麻煩,而V8 Engine我又不想在Class Library專案中放一堆js檔,後來就想到Razor,因為Razor的相關處理都是寫在System.Web.Razor,雖然Namespace叫System.Web,但根本

CSS 3学习——transition 过渡

以下内容根据官方规范翻译以及自己的理解整理. 1.介绍 这篇文档介绍能够实现隐式过渡的CSS新特性.文档中介绍的CSS新特性描述了CSS属性的值如何在给定的时间内平滑地从一个值变为另一个值. 2.过渡transitions 通常情况下,当CSS属性发生改变时,对应元素的CSS属性值立即从旧值变为新值,渲染结果也是立即更新.这部分介绍一种方法,可以通过使用新的CSS属性指定过渡的过程.这些新属性让元素以平滑动画的形式逐渐地从旧状态过渡到新状态. 比如,假设一个元素的left属性和backgroun

移动端使用rem适配及相关问题

移动端适配方案,说多也很多.可以使用百分比布局,但百分比与em都是基于父元素进行计算的,在实际应用中不是很方便.使用rem不仅可以设置字体大小,块大小也可以设置.而且可以良好的适配各种终端,所以这方案很受欢迎. rem定义及浏览器支持情况 rem(font size of the root element)是指相对于根元素的字体大小的单位.简单的说它就是一个相对单位.看到rem一定会想起em单位,em(font size of the element)是指相对于父元素的字体大小的单位.它们之间其