목차
Demo: Button
background
样式说明:Styling
布局说明:Coding
小结
웹 프론트엔드 HTML 튜토리얼 CSS常见样式(一):background_html/css_WEB-ITnose

CSS常见样式(一):background_html/css_WEB-ITnose

Jun 21, 2016 am 09:07 AM

跟着视频将 HTML 和 CSS (不包括 HTML5 和 CSS3)全部粗略学习了一遍之后,感觉有必要再系统性地进行一下复习和总结。第一篇文章将会以一个小 demo 来总结一下 background 的用法。

Demo: Button

demo如下(涉及到本地图片,因此预览效果有问题):
https://jsfiddle.net/ChasonZhang/185mmr99/
效果如下:

按钮来源(亚马逊(Amazon)的按钮样式):

看了上面按钮样式之后,我想到的解决方案有如下几种:

  • 最简单:直接使用不带文字的图片作为按钮的背景样式,缺点在于针对不同的按钮宽度(如上图登录按钮和购买按钮)需要设计师进行重复的绘制,增加了额外的工作量,且缺乏重用性。

  • 最完美:使用CSS进行绘制: linear-gradient 和 border-radius ,缺乏在于部分低版本IE(具体哪个版本待查证,印象中是 IE8 及以下)不兼容 border-radius。

  • 最兼容:将使用图片和CSS绘制结合在一起。

  • background 属性在第3种方法中得到了充分的利用。

    background

    下图是 w3c 上关于 background 的属性清单:

    经过简单的试验,可以得出以下几条结论:

  • 背景图片默认以原尺寸填充,填充范围包括盒模型的 padding 和 content 区域;

  • 背景图片默认以左上角为原始位置(0, 0),默认按照从左到右、从上到下的顺序**重复填充**,直到填充满整个填充范围;

  • background-image 可以设置 background-size (CSS3) 的值, background-color 不可以;感兴趣的话另外两个 CSS3 新属性也可以研究一下,不过兼容性都需要 IE9 及以上。

  • 缩写形式: background: color image position/size repeat origin clip attachment initial|inherit; ,注意 / 的使用;

  • background 也有层级关系。

  • blackground 不影响盒模型的宽高,不属于盒模型的内容(content)。之前的浮动与清浮动系列文章里提到过,块元素占满整行,高度由内容撑开。也就是说,在 div 里输入几行文字,div 就有多高;但是如果 div 为空(除了背景图没有其他文字等内容),那么背景图就不会显出来。作为初学者曾经跳进过的坑,这一点还是要注意的,插入纯背景图需要对块级元素设置宽高。但是,如果在 div 中插入 img 元素,那这就完全不是一回事,虽然渲染效果可能一模一样。

  • 以上几点,是对 background 基本知识的总结,作为初学者,我以为掌握到这种程度基本上算合格了。

    样式说明:Styling

    样式代码如下:

    <style type="text/css">body { margin: 0;}.btn { margin: 20px auto; width: 135px; height: 31px;    background-image: url(img/btn.jpg);    background-repeat: repeat-x;}.btnL {    height: 31px;    background-image: url(img/btnL.jpg);    background-repeat: no-repeat;}.btnR {    height: 31px;    background-image: url(img/btnR.jpg);    background-repeat: no-repeat;    background-position: right;    line-height: 31px;    text-align: center;    font-size: 14px;}</style>
    로그인 후 복사

    整个样式的思路是:

  • 将按钮分为两部分:文字+背景。文字属于 html 里的内容,css主要设计的是样式。

  • 将背景拆分为三部分,竖直着切三刀,左右分别是带两个圆角的小矩形,中间是一段横长的矩形。

  • 将中间部分继续竖起切,切成一条条1像素宽的矩形,然后需要多宽的矩形,就用多少条1px矩形。打个简单的比方,就是先微分,再积分。

  • 在这个例子中,使用 background 属性时,需要注意给所有块级元素设置宽,宽只需要 .btn 设置一次就可以。

    布局说明:Coding

    代码如下,基本的三层嵌套布局。

    <body><div class="btn">    <div class="btnL">        <div class="btnR">加入购物车</div>    </div>    </div></body>
    로그인 후 복사

    知其所以然
    在构造这个布局的时候,有一个问题需要明白:
    为什么 .btnR 需要放在 .btnL 里面?
    .btnL 放在 .btn 里面可以理解,但是 .btnL 和 .btnR 不是并列关系吗?假设 .btnR 不放在 .btnL 里面,而是与之并列,会出现按钮背景两边圆角部分错位排列的效果,原因在于两个块级元素都有宽高,会分别占据一行。

    小结

    随着 CSS3 的发展,如今这个小 demo 并不是解决类似样式的最佳方式了,但是里面蕴含着 **CSS 滑动门**的原理(前几年非常流行的一种方法,参考传智播客的导航栏)。当然了,在这里以这个小 demo 为例,主要是为了总结一下 background 的用法。

    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 옷 제거제

    Video Face Swap

    Video Face Swap

    완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

    뜨거운 도구

    메모장++7.3.1

    메모장++7.3.1

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

    SublimeText3 중국어 버전

    SublimeText3 중국어 버전

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

    스튜디오 13.0.1 보내기

    스튜디오 13.0.1 보내기

    강력한 PHP 통합 개발 환경

    드림위버 CS6

    드림위버 CS6

    시각적 웹 개발 도구

    SublimeText3 Mac 버전

    SublimeText3 Mac 버전

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

    HTML은 초보자를 위해 쉽게 배우나요? HTML은 초보자를 위해 쉽게 배우나요? Apr 07, 2025 am 12:11 AM

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

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

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

    HTML의 시작 태그의 예는 무엇입니까? HTML의 시작 태그의 예는 무엇입니까? Apr 06, 2025 am 12:04 AM

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

    HTML, CSS 및 JavaScript 이해 : 초보자 안내서 HTML, CSS 및 JavaScript 이해 : 초보자 안내서 Apr 12, 2025 am 12:02 AM

    WebDevelopmentReliesonHtml, CSS 및 JavaScript : 1) HtmlStructuresContent, 2) CSSSTYLESIT, 및 3) JAVASCRIPTADDSINGINTERACTIVITY, BASISOFMODERNWEBEXPERIENCES를 형성합니다.

    Gitee Pages 정적 웹 사이트 배포 실패 : 단일 파일 문제를 해결하고 해결하는 방법 404 오류? Gitee Pages 정적 웹 사이트 배포 실패 : 단일 파일 문제를 해결하고 해결하는 방법 404 오류? Apr 04, 2025 pm 11:54 PM

    GiteEpages 정적 웹 사이트 배포 실패 : 404 오류 문제 해결 및 해결시 Gitee ...

    웹 주석에서 y 축 위치의 적응 형 레이아웃을 구현하는 방법은 무엇입니까? 웹 주석에서 y 축 위치의 적응 형 레이아웃을 구현하는 방법은 무엇입니까? Apr 04, 2025 pm 11:30 PM

    웹 주석 기능에 대한 Y 축 위치 적응 알고리즘이 기사는 Word 문서와 유사한 주석 기능을 구현하는 방법, 특히 주석 간격을 다루는 방법을 모색합니다 ...

    CSS3 및 JavaScript를 사용하여 클릭 후 주변 사진을 흩어지고 확대하는 효과를 얻는 방법은 무엇입니까? CSS3 및 JavaScript를 사용하여 클릭 후 주변 사진을 흩어지고 확대하는 효과를 얻는 방법은 무엇입니까? Apr 05, 2025 am 06:15 AM

    이미지를 클릭 한 후 주변 이미지를 산란 및 확대하는 효과를 얻으려면 많은 웹 디자인이 대화식 효과를 달성해야합니다. 특정 이미지를 클릭하여 주변을 만들 수 있습니다 ...

    HTML, CSS 및 JavaScript : 웹 개발자를위한 필수 도구 HTML, CSS 및 JavaScript : 웹 개발자를위한 필수 도구 Apr 09, 2025 am 12:12 AM

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

    See all articles