목차
::before 및 ::after는 무엇입니까?
::적용 전 및 :: 적용 후
给标题加括号
给标题加引号
不设置quotes
标题
웹 프론트엔드 CSS 튜토리얼 CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

Sep 14, 2021 am 10:14 AM
::after ::before css 의사 요소

이 기사에서는 CSS의 ::before 및 ::after 의사 요소를 살펴보고 해당 응용 프로그램을 살펴보는 데 도움이 되기를 바랍니다.

CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

이 글은 가장 간단한 것부터 시작하여 ::before 및 ::after를 이해하고 사용하는 방법을 설명합니다. 그런 다음 실제 사용 시나리오에 적용해 보세요.

::before 및 ::after는 무엇입니까?

::before 및 ::after는 의사 요소를 생성하기 위해 선택기에 추가할 수 있는 키워드입니다. 의사 요소는 선택기와 일치하는 요소의 콘텐츠 앞이나 뒤에 삽입됩니다.

CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

content 속성

1) ::before 및 ::after 아래의 고유 콘텐츠는 CSS 렌더링에서 요소의 논리적 헤드 또는 테일에 콘텐츠를 추가하는 데 사용됩니다.

2) ::before 및 ::after는 콘텐츠 속성과 함께 사용해야 합니다. 콘텐츠는 삽입된 콘텐츠를 정의하는 데 사용됩니다. 콘텐츠에는 최소한 비어 있는 값이 있어야 합니다.

3) 이러한 추가 사항은 DOM에 표시되지 않으며 변경되지 않습니다. 문서의 내용은 복사할 수 없으며 CSS 렌더링 레이어에만 추가됩니다. 따라서 의미 있는 콘텐츠를 표시하려면 :before 또는 :after를 사용하지 말고 장식적인 콘텐츠를 표시하는 데 사용하세요.

content는 다음 값을 사용할 수 있습니다.

string

따옴표를 사용하여 추가될 문자열을 묶습니다. 요소 내용에 String

CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

 p::before{
    content: "《";
    color: #000000;
}
p::after{
    content: "》";
    color:#000000;
}

<p>JavaScript高级程序设计</p>
로그인 후 복사

attr()

은 attr()을 통해 현재 요소의 속성을 호출합니다(예: 이미지 대체 텍스트 또는 링크의 href 주소 표시).

CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

a::after {
    content: &#39; → &#39; attr(href); /* 在 href 前显示一个箭头 */
}

 <a href="https://www.baidu.com/">百度地址</a>
로그인 후 복사

CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

 a::after{
    content: "【" attr(href) "】";
}

<a href="https://www.baidu.com/">百度地址</a>
로그인 후 복사

url()/uri()

은 미디어 파일을 참조하는 데 사용됩니다. 예를 들어, "Baidu"는 앞면에 그림을 제공하고 뒷면에 ​​href 속성을 제공합니다.

CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

a::before{
    content: url("img/baidu_jgylogo3.gif");
}
a::after{
    content:"("attr(href)")";
}

<a href="https://www.baidu.com/">百度地址</a>
로그인 후 복사

Note

1) URL에는 따옴표를 사용할 수 없습니다. URL을 따옴표로 묶으면 문자열이 되고 이미지 자체 대신 "url(image.jpg)"라는 텍스트가 콘텐츠로 삽입됩니다.

2) 콘텐츠 속성은 이미지를 직접 사용합니다. 너비와 높이를 작성하더라도 이미지 크기는 변경할 수 없습니다.

해결 방법: 이 문제를 해결하려면 content:''를 공백으로 작성하면 됩니다. background:url() 사진 추가

/*伪元素添加图片:*/
.wrap:after{
    /*内容置为空*/
    content:"";
    /*设置背景图,并拉伸*/
    background:url("img/0CSS::before 및 ::after의 의사 요소에 대한 자세한 설명") no-repeat center;
    /*必须设置此伪元素display*/
    display:inline-block;
    /*必须设置此伪元素大小(不会被图片撑开)*/
    background-size:100%;
    width:100px;
    height:100px;
}复制代码
로그인 후 복사

3) img, input 및 기타 단일 태그에는 의사 요소가 적용되지 않습니다. :after 및 :before 의사 요소(일부 브라우저에서는 사용할 수 없음) , 예: Apple에서는 해당 태그가 유효하지 않다고 판단합니다. 단일 태그 자체에는 하위 요소가 있을 수 없기 때문입니다.

해결책: img에 div를 래핑하여 문제 해결

4) 의사 요소의 이미지를 동적으로 변경하려면 현재 요소에 의사 요소 이미지의 기본 스타일을 추가하고, 그런 다음 동적 클래스를 사용하여 의사 요소의 이미지를 작성합니다.

::적용 전 및 :: 적용 후

따옴표 속성과 함께 사용

CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

괄호 추가

 h1{
    quotes:"(" ")";  /*利用元素的quotes属性指定文字符号*/
}
h1::before{
    content:open-quote;
}
h1::after{
    content:close-quote;
}

<h1 id="给标题加括号">给标题加括号</h1>
로그인 후 복사

따옴표 추가

 h2{
    quotes:"\"" "\"";  /*添加双引号要转义*/
}
h2::before{
    content:open-quote;
}
h2::after{
    content:close-quote;
}

<h2 id="给标题加引号">给标题加引号</h2>
로그인 후 복사

지정되지 않음 , 기본

 h3::before{
    content:open-quote;
}
h3::after{
    content:close-quote;
}

<h3 id="不设置quotes">不设置quotes</h3>
로그인 후 복사

Decoration Title

CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

h1 {
    display: grid;
    grid-template-columns: minmax(50px, 1fr) auto minmax(50px, 1fr);
    align-items: center;
    text-align: center;
    gap: 40px;
}

h1::before, h1::after {
    content: &#39;&#39;;
    border-top: 6px double;
}

<h1 id="标题">标题</h1>
로그인 후 복사

레이아웃은 <h1> 요소를 3개의 열로 변환하여 구현됩니다. 왼쪽 열과 오른쪽 열은 너비가 minmax(50px, 1fr)인 이중선입니다. 이는 일치하는 너비가 항상 50px 이상임을 의미합니다. 제목 텍스트가 깔끔하게 중앙에 배치되었습니다.

리본 제목

CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

 h1 {
    position: relative;
    margin: 0 auto 20px;
    padding: 10px 40px;
    text-align: center;
    background-color: #875e46;
}

h1::before, h1::after {
    content: &#39;&#39;;
    width: 80px;
    height: 100%;
    background-color: #724b34;

    /* 定位彩带两端形状的位置,并且放在最底层 */
    position: absolute;
    z-index: -1;
    top: 20px;

    /* 彩带两端的形状 */
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 25% 50%);

    /* 绘制并定位彩带的阴影三角形 */
    background-image: linear-gradient(45deg, transparent 50%, #5d3922 50%);
    background-size: 20px 20px;
    background-repeat: no-repeat;
    background-position: bottom right;
}

h1::before {
    left: -60px;
}

h1::after {
    right: -60px;
    transform: scaleX(-1); /* 水平翻转 */
}
---------------------------
 <h1 id="标题">标题</h1>
로그인 후 복사

더욱 사실적인 그림자 구현

CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

.box{margin:10px;width:300px;height:100px;border-radius:10px;background:#ccc}
.shadow{position:relative;max-width:270px;box-shadow:0 1px 4px rgba(0,0,0,.3),0 0 20px rgba(0,0,0,.1) inset}
.shadow::after,.shadow::before{position:absolute;z-index:-1;content:""}
.shadow::after,.shadow::before{position:absolute;bottom:15px;left:10px;z-index:-1;width:50%;height:20%;content:""}
.shadow::after,.shadow::before{position:absolute;bottom:15px;left:10px;z-index:-1;width:50%;height:20%;box-shadow:0 15px 10px rgba(0,0,0,.7);content:"";transform:rotate(-3deg)}
.shadow::after{right:10px;left:auto;transform:rotate(3deg)}


<div class="box shadow"></div>
로그인 후 복사

교체 내용

어떤 경우에는 콘텐츠에 ::before를 사용할 필요가 없습니다. 또는: :후. 콘텐츠가 단일 이미지로 설정된 경우 해당 콘텐츠를 요소에서 직접 사용하여 해당 요소의 HTML 콘텐츠를 바꿀 수 있습니다.

예를 들어 페이지에 다음 세 가지 콘텐츠가 있습니다.

CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

교체 클래스를 추가한 후

.replace {
    content: url(img/replace.png);
}
로그인 후 복사

CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

1)具有简单文本的元素。它会被取代。
2)一个包含<img src="/static/imghw/default1.png" data-src="img/cat.jpg" class="lazy" alt="CSS::before 및 ::after의 의사 요소에 대한 자세한 설명" >在其中的元素。它也会被取代。
3)<img src="/static/imghw/default1.png" data-src="img/cat.jpg" class="lazy" alt="CSS::before 및 ::after의 의사 요소에 대한 자세한 설명" >直接一个元素。Firefox不会取代它,但其他浏览器会。

清除浮动

方式一:

.classic-clearfix::after {
    content: &#39;&#39;;
    display: block;
    clear: both;
}
로그인 후 복사

方式二:

.modern-clearfix {
    display: flow-root;
}
로그인 후 복사

1CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

模拟float:center的效果

float没有center这个取值,但是可以通过伪类来模拟实现。

原理:左右通过::before float各自留出一半图片的位置,再把图片绝对定位上去。

1CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

body { font: 14px/1.8 Georgia, serif;}
#page-wrap { width: 60%; margin: 40px auto; position: relative; }
#logo { position: absolute; top: 0; left: 50%; margin-left: -125px; }
#l, #r { width: 49%; }
#l { float: left; }
#r { float: right; }
#l:before, #r:before { content: ""; width: 125px; height: 250px; }
#l:before { float: right; }
#r:before { float: left; }

<div id="page-wrap">
    <img  src="/static/imghw/default1.png"  data-src="img/cat.jpg"  class="lazy"   id="logo" alt="CSS::before 및 ::after의 의사 요소에 대한 자세한 설명" >
    <div id="l">
        <p>
            Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus
        </p>
    </div>
    <div id="r">
        <p>
            Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus
        </p>
    </div>
</div>
로그인 후 복사

1CSS::before 및 ::after의 의사 요소에 대한 자세한 설명

引用参考:

W3C官方文档

Diving into the ::before and ::after Pseudo-Elements

Faking ‘float: center’ with Pseudo Elements

原文地址:https://juejin.cn/post/6986629782666477599

作者:Axjy

相关推荐:《css视频教程》!

위 내용은 CSS::before 및 ::after의 의사 요소에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

HTML, CSS 및 JavaScript의 역할 : 핵심 책임 HTML, CSS 및 JavaScript의 역할 : 핵심 책임 Apr 08, 2025 pm 07:05 PM

HTML은 웹 구조를 정의하고 CSS는 스타일과 레이아웃을 담당하며 JavaScript는 동적 상호 작용을 제공합니다. 세 사람은 웹 개발에서 의무를 수행하고 화려한 웹 사이트를 공동으로 구축합니다.

Vue에서 부트 스트랩을 사용하는 방법 Vue에서 부트 스트랩을 사용하는 방법 Apr 07, 2025 pm 11:33 PM

vue.js에서 bootstrap 사용은 5 단계로 나뉩니다 : Bootstrap 설치. main.js.의 부트 스트랩 가져 오기 부트 스트랩 구성 요소를 템플릿에서 직접 사용하십시오. 선택 사항 : 사용자 정의 스타일. 선택 사항 : 플러그인을 사용하십시오.

부트 스트랩에 분할 라인을 작성하는 방법 부트 스트랩에 분할 라인을 작성하는 방법 Apr 07, 2025 pm 03:12 PM

부트 스트랩 분할 라인을 만드는 두 가지 방법이 있습니다 : 태그를 사용하여 수평 분할 라인이 생성됩니다. CSS 테두리 속성을 사용하여 사용자 정의 스타일 분할 라인을 만듭니다.

부트 스트랩 크기를 조정하는 방법 부트 스트랩 크기를 조정하는 방법 Apr 07, 2025 pm 03:18 PM

부트 스트랩에서 요소의 크기를 조정하려면 다음을 포함하여 차원 클래스를 사용할 수 있습니다.

부트 스트랩에 사진을 삽입하는 방법 부트 스트랩에 사진을 삽입하는 방법 Apr 07, 2025 pm 03:30 PM

Bootstrap에 이미지를 삽입하는 방법에는 여러 가지가 있습니다. HTML IMG 태그를 사용하여 이미지를 직접 삽입하십시오. 부트 스트랩 이미지 구성 요소를 사용하면 반응 형 이미지와 더 많은 스타일을 제공 할 수 있습니다. 이미지 크기를 설정하고 IMG-Fluid 클래스를 사용하여 이미지를 적응할 수 있도록하십시오. IMG 통과 클래스를 사용하여 테두리를 설정하십시오. 둥근 모서리를 설정하고 IMG 라운드 클래스를 사용하십시오. 그림자를 설정하고 그림자 클래스를 사용하십시오. CSS 스타일을 사용하여 이미지를 조정하고 배치하십시오. 배경 이미지를 사용하여 배경 이미지 CSS 속성을 사용하십시오.

부트 스트랩을위한 프레임 워크를 설정하는 방법 부트 스트랩을위한 프레임 워크를 설정하는 방법 Apr 07, 2025 pm 03:27 PM

부트 스트랩 프레임 워크를 설정하려면 다음 단계를 따라야합니다. 1. CDN을 통해 부트 스트랩 파일 참조; 2. 자신의 서버에서 파일을 다운로드하여 호스팅하십시오. 3. HTML에 부트 스트랩 파일을 포함; 4. 필요에 따라 Sass/Less를 컴파일하십시오. 5. 사용자 정의 파일을 가져옵니다 (선택 사항). 설정이 완료되면 Bootstrap의 그리드 시스템, 구성 요소 및 스타일을 사용하여 반응 형 웹 사이트 및 응용 프로그램을 만들 수 있습니다.

부트 스트랩 날짜를 보는 방법 부트 스트랩 날짜를 보는 방법 Apr 07, 2025 pm 03:03 PM

답 : 부트 스트랩의 날짜 선택기 구성 요소를 사용하여 페이지에서 날짜를 볼 수 있습니다. 단계 : 부트 스트랩 프레임 워크를 소개하십시오. HTML에서 날짜 선택기 입력 상자를 만듭니다. 부트 스트랩은 선택기에 스타일을 자동으로 추가합니다. JavaScript를 사용하여 선택한 날짜를 얻으십시오.

부트 스트랩 버튼을 사용하는 방법 부트 스트랩 버튼을 사용하는 방법 Apr 07, 2025 pm 03:09 PM

부트 스트랩 버튼을 사용하는 방법? 부트 스트랩 CSS를 소개하여 버튼 요소를 만들고 부트 스트랩 버튼 클래스를 추가하여 버튼 텍스트를 추가하십시오.

See all articles