《 CSS Secrets 》是 @Lea Verou 最新著作,这本书讲解了有关于CSS中一些小秘密。是一本CSSer值得一读的一本书,经过一段时间的阅读,我、@南北和@彦子一起将在W3cplus发布一系列相关的读后感,与大家一起分享。
设计师是很挑剔的一群人。我们总是很喜欢自定义一些东西,然后精心设计一番,使得它们和我们想要的视觉效果非常相近,让我们的设计更直观也更易于使用。毕竟,默认的东西很少有我们觉得不错的。
文本下划线就是我们非常喜欢去自定义的东西之一。尽管默认的用起来不错,可是给人一种干扰的感觉,况且它在每一个浏览器中渲染的结果都不一样。尽管文本下划线从web开始普及以来,一直伴随着我们,我们从来没有真正找到更多自定义它们的方式。甚至在CSS到来之后,我们也只是有了一个on/off的权限:
text-decoration: underline;
和之前一样,如果我们没有正好对口的工具,我们就需要自行解决了。我们没有办法自定义文本下划线,所以我们需要用 border 来伪造。所以第一个想到的CSS技巧:
a[href] { border-bottom: 1px solid gray; text-decoration: none;}
虽然使用 border-bottom 来模拟文本下划线可以让我们控制颜色、粗线还有样式,但这不是完美的。你可以在下图中看到
这些“下划线”和文本内容之间有一个非常大的空隙,差不多就像是在文本的下一行的位置!我们可以尝试通过给它一个 display: inline-block; 以及一个较小的 line-height 值来解决这个问题,如下:
display: inline-block;border-bottom: 1px solid gray;line-height: .9;
这确实可以让下划线离文本更近,但是它影响了正常的文本换行,如图所示。
尝试解决基于border的“下划线”的问题,但是文本需要换行——这样反而乱套了
现在,我们再来尝试使用内阴影 box-shadow 来模拟下划线:
box-shadow: 0 -1px gray inset;
但是,这和 border-bottom 有相同的问题,除了它的投影稍微和文本更靠近了一些。有没有什么办法可以得到确定的、灵活的、可自定义的下划线呢?
解决方案
最好的解决方案往往来自最意想不到的地方。在这个示例中,它涉及 background-image 和其相关属性的作用。你可能会觉得疯狂,但是请先等一下。背景可以非常完美地包裹文本,再根据CSS3 Backgrounds & Borders中一些新的背景相关的属性,如 background-size ,我们可以对它们有一个非常精确的控制。我们甚至不需要为它们添加单独的HTTP请求,因为我们可以通过CSS渐变生成背景图像:
background: linear-gradient(gray, gray) no-repeat;background-size: 100% 1px;background-position: 0 1.15em;
你可以在下图中看到非常不错的效果。
但是我们还可以做一个小的提升。注意到我们的下划线是如何穿过一些像 p 和 y 这样的字母的吗。如果在它们周围有一些适当的空白,岂不是更好吗?如果我们的背景是纯色的,我们可以设置两个 text-shadows ,其中一个阴影的颜色和我们的背景颜色一样:
background: linear-gradient(gray, gray) no-repeat;background-size: 100% 1px;background-position: 0 1.15em;text-shadow: .05em 0 white, -.05em 0 white;
效果如下所示:
在这里使用渐变是因为它们非常灵活。例如,创建一个虚下划线,你可以这样写:
background: linear-gradient(90deg,gray 66%, transparent 0) repeat-x;background-size: .2em 2px;background-position: 0 1em;
效果如下图所示:
这样你可以通过色标来控制虚线的间隙,通过 background-size 来控制它们的尺寸。
作为练习,你可以尝试创建红色波浪下划线,如用于强调拼写错误的那个下划线样式(提示:你需要两个渐变。)你会在下面的示例中找到解决方案,但是在看答案之前,自己先试试——这样会更有趣。
提示:将来的文本下划线
在将来,我们要自定义下划线就不需要再这么繁琐了。在 CSS3 Text Decoration 中,有几个为此定制的属性,如下:
- text-decoration-color 用于自定义下划线的颜色和一些其它的装饰
- text-decoration-style 用于自定义装饰的样式(如, solid 、 dashed 、 wavy 等等)
- text-decoration-skip 用于跳过空格、跨行字母和其它对象
- text-underline-position 用于下划线位置的微调
但是,这些属性目前的浏览器支持非常少。
扩展阅读
- CSS Design: Custom Underlines
- Building Custom Text Strikethroughs with CSS
- Towards a more perfect link underline
- Customized Underlines

HTML의 역할은 태그 및 속성을 통해 웹 페이지의 구조와 내용을 정의하는 것입니다. 1. HTML은 읽기 쉽고 이해하기 쉽게하는 태그를 통해 컨텐츠를 구성합니다. 2. 접근성 및 SEO와 같은 시맨틱 태그 등을 사용하십시오. 3. HTML 코드를 최적화하면 웹 페이지로드 속도 및 사용자 경험이 향상 될 수 있습니다.

"Code"는 "Code"BroadlyIncludeLugageslikeJavaScriptandPyThonforFunctureS (htMlisAspecificTypeofCodeFocudecturecturingWebContent)

HTML, CSS 및 JavaScript는 웹 개발의 세 가지 기둥입니다. 1. HTML은 웹 페이지 구조를 정의하고 등과 같은 태그를 사용합니다. 2. CSS는 색상, 글꼴 크기 등과 같은 선택기 및 속성을 사용하여 웹 페이지 스타일을 제어합니다.

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

HTML은 간단하고 배우기 쉽고 결과를 빠르게 볼 수 있기 때문에 초보자에게 적합합니다. 1) HTML의 학습 곡선은 매끄럽고 시작하기 쉽습니다. 2) 기본 태그를 마스터하여 웹 페이지를 만들기 시작하십시오. 3) 유연성이 높고 CSS 및 JavaScript와 함께 사용할 수 있습니다. 4) 풍부한 학습 리소스와 현대 도구는 학습 과정을 지원합니다.

anexampleStartingtaginhtmlis, whithbeginsaparagraph.startingtagsareessentialinhtmlastheyinitiate rements, definetheirtypes, andarecrucialforstructurituringwebpages 및 smanstlingthedom.

메뉴에서 점선 분할 효과를 설계하는 방법은 무엇입니까? 메뉴를 설계 할 때는 일반적으로 접시 이름과 가격 사이에 왼쪽과 오른쪽을 정렬하는 것이 어렵지 않지만 점선 또는 중간의 점은 어떻습니까?

웹 코드 편집기의 HTML 요소 분석 많은 온라인 코드 편집기를 사용하면 사용자가 HTML, CSS 및 JavaScript 코드를 입력 할 수 있습니다. 최근에 누군가가 제안했습니다 ...


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

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

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
