:before 和 :after 伪元素用于在 HTML 元素的开始和结束前添加内容。这些伪选择器有助于添加内容或其他效果,而无需使用 HTML DOM 中不必要的元素。使用这些选择器,你可以在元素上添加内容或任何颜色和 CSS 效果。顾名思义,:before 选择器会在元素之前添加内容,而 :after 元素则会在元素之后添加内容。
您可以使用这些选择器添加任何图像、颜色、背景效果等。在本文中,我们将使用这些选择器在元素之前和之后添加 SVG 图像。有两种方法可以做到这一点,如下所示:
现在让我们详细讨论这些方法,以及它们在每种方法的不同代码示例中的实际实现。
content 属性是用于向 HTML 元素添加任何类型的内容的 CSS 属性。我们可以使用这个属性在元素之前和之后添加 SVG 图像内容,方法是在 :before 和 :after 伪选择器中使用它。
下面的语法将显示如何使用伪选择器中的 content 属性来添加任何类型的内容 :
htmlElement:before / :after{
content: "write your content";
}
现在让我们通过在代码示例中实际实现 HTML 元素来了解如何使用这些选择器在使用 content 属性之前和之后添加 SVG。
下面的示例将说明如何使用 content 属性在 HTML 元素之前和之后添加 SVG -
DOCTYPE html>
<html lang = "en">
<head>
<style>
.result:before{
content: url('https://www.tutorialspoint.com/html5/src/svg/extensions/imagelib/smiley.svg');
zoom: 20%;
}
.result:after{
content: url('https://www.tutorialspoint.com/html5/src/svg/extensions/imagelib/smiley.svg');
zoom: 20%;
}
style>
head>
<body>
<center>
<h2>Use SVG with :before or :after pseudo elementh2>
<p>The SVG images before and after the below element are added using the :before and :after pseudo elements.p>
<p class = "result">Smily emoji before and after this content added using the <b> content b> property.p>
center>
body>
html>
在上面的例子中,我们使用了伪选择器元素中的 content 属性,在 HTML 元素的实际文本内容之前和之后添加 SVG 图像。这是将 SVG 与 :before 和 :after 伪元素一起使用的第一种方法。
background image 属性用于向 HTML 元素添加一个或多个背景图像。我们可以使用此属性将 HTML 元素之前和之后的 SVG 图像添加为 :before 和 :after 伪元素的背景图像。
下面的语法将显示使用 CSS 的 background-image 属性将背景图像添加到 :before 和 :after 伪元素
htmlElement:before / :after{
background-image: url(url of svg image);
}
现在让我们详细了解如何使用 background-image 属性在代码示例的帮助下实际添加元素之前和之后的内容。
此示例的方法与上一个示例的算法几乎相似。你只需要在前面的代码中做一些更改,将伪元素样式中的content属性替换为background-image属性和background-image属性的一些辅助属性。
下面的例子将详细解释之前算法的变化和background-image属性的使用。
DOCTYPE html>
<html lang = "en">
<head>
<style>
.result:before{
content: '';
background-image: url('https://www.tutorialspoint.com/html5/src/svg/extensions/imagelib/smiley.svg');
background-repeat: no-repeat;
background-position: center center;
background-size: cover;
display: inline-flex;
height: 30px;
width: 30px;
}
.result:after{
content: '';
background-image: url('https://www.tutorialspoint.com/html5/src/svg/extensions/imagelib/smiley.svg');
background-repeat: no-repeat;
background-position: center center;
background-size: cover;
display: inline-flex;
height: 30px;
width: 30px;
}
style>
head>
<body>
<center>
<h2>Use SVG with :before or :after pseudo element h2>
<p>The SVG images before and after the below element are added using the :before and :after pseudo elements.p>
<p class = "result"> Smily emoji before and after this content added using the <b> background-image b> property.p>
center>
body>
html>
在此示例中,我们使用 background-image 属性将 SVG 图像设置为 :before 和 :after 伪元素的背景。这是使用 SVG 在伪元素之前和之后的另一种方法,而不是 content 属性方法。
在本文中,我们借助代码示例了解了将 SVG 与 :before 和 :after 伪元素一起使用的两种不同方式或方法。我们已经详细讨论了这两种方法,在代码示例的帮助下实际实现了它们,并了解了它们的工作原理。