精通CSS高级Web标准解决方案读书笔记-04背景图像效果

1. 背景图像基础

body{
  background-image:url(pattern.jpg);
  background-repeat:repeat-x;
  background-color:#ccc;
}

background-image总是在background-color之前,可以使用这个方法处理图像在高度不够的情况。
设置图像位置的两种方法:像素和百分比


2. 圆角框的实现

2.1 固定宽度的圆角框

<style type="text/css">
h2 {
    color: #94b767;
}
.box {
  width: 418px;
  background: #effce7 url(img/bottom.gif) no-repeat left bottom;
    padding-bottom: 1px;
}
.box h2 {
  background: url(img/top.gif) no-repeat left top;
    margin-top: 0;
  padding: 20px 20px 0 20px;
}
.box p {
    padding: 0 20px;
}
</style>
</head>
<body>
<h1>Simple, Fixed Rounded Corner Box</h1>
<div class="box">
  <h2>Lorem Ipsum</h2>
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin venenatis turpis ut quam. In dolor. Nam ultrices nisl sollicitudin sapien. Ut lacinia aliquet ante.</p>
</div>
</body>

原理box上设置下面的框,h1上设置上面的框。只适用于固定宽度的。不能水平扩展。

2.2 滑动门

<style type="text/css">
h2 {
    color: #94b767;
}
.box {
  width: 20em;
  background: url(img/bottom-left.gif) no-repeat left bottom;
}
.box-outer {
    background: url(img/bottom-right.gif) no-repeat right bottom;
    padding-bottom: 1px;
}
.box-inner {
    background: url(img/top-left.gif) no-repeat left top;
}
.box h2 {
  background: url(img/top-right.gif) no-repeat right top;
    padding-top: 1em;
}
.box h2, .box p {
    padding-left: 1em;
    padding-right: 1em;
}
</style>
</head>
<body>
<div class="box">
<div class="box-outer">
<div class="box-inner">
<h2>Lorem Ipsum</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin venenatis turpis ut quam. In dolor. Nam ultrices nisl sollicitudin sapien. Ut lacinia aliquet ante.<p>
</div>
</div>
</div>
</body>

又称为滑动门技术,添加inner,outer用于添加背景图像。box设置左底角图像很大,outer设置右下角,inner设置左上角,h2设置右上角。可以加宽,高,但需要添加多余的标签。可以利用一个标签上设置多个背景图像的方法。减少不必要的标签。

2.3山顶角

原理利用蒙版实现圆角

<style  type="text/css">
.box {
    width: 30em;
    background: #89ac11 url(img/mtop-left.gif) left top no-repeat;
    color: #fff;
    padding: 2em 2em 1em 2em;
    margin-top: 2em;
}
h2 {
    margin-top: 0;
    font-size: 1.6em;
}
.box {
    background-image: url(img/mtop-left.gif), url(img/mtop-right.gif), url(img/mbottom-left.gif), url(img/mbottom-right.gif);
    background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
    background-position: top left, top right, bottom left, bottom right;
}
</style>
</head>
<body>
<div class="box">
<h2>My Rounded Corner Box</h2>
<p>This is my rounded corner box. Isn't it spiffing! I think it's the best rounded corner box in the world. I mean, look at those corners. How round are they? Now take a look at the mark-up. That's right, no extraneous div's. Just pure HTML goodness. Sexy huh? I bet you're wondering how I did that? Well it's easy with CSS 3. You simply use multiple background images. </p>
</div>

2.4 border-radius

2.5 border-image

设置border的背景图像
详见w3c例子

3. css视差效果

当窗口大小改变时可以发现背景图像在动,利用百分比法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="../css/harmonise.css" type="text/css" />
<link rel="stylesheet" href="../css/base-groups.css" type="text/css" />
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="../css/ie.css" />
<![endif]-->
<title>Parallax Effect | Chapter 4 | CSS Mastery </title>
</head>
<style type="text/css">
/* pretty */
.content {
    max-width: 61em; /* 1098px */
    margin: 0 auto;
    padding: 100px 20px 0 20px;
}
/* parallax effect */
body {
  background-image: url(img/bg-rear.gif);
  background-repeat: repeat-x;
  background-color: #d3ff99;
  background-position: 20% 0;
}
.midground {
  background-image: url(img/bg-mid.png);
  background-repeat: repeat-x;
  background-color: transparent;
  background-position: 40% 0;
}
.foreground{
  background-image: url(img/bg-front.png);
  background-repeat: repeat-x;
  background-color: transparent;
  background-position: 150% 0;
}
</style>
</head>
<body>
  <div class="midground">
    <div class="foreground">
      <div class="content">
        <h1>Your content will go here!</h1>
      </div>
    </div>
  </div>
</body>
</html>

4. 图像替换

主要解决的问题搜索引擎识别文本而不能读取图像。使用新颖的字体。

4.1 FIR方法

h2{
 background-image:url(hello_world.gif) no-repeat;
 width:150px;
 height:35px;
}
span{
 display:none;
}
<h2>
 <span>hello world</span>
</h2>

原理:将文本display设置为none;但又严重缺陷:许多屏幕阅读器会忽略display值为none或visibility为hidden的元素。建议不要使用(屏幕阅读器是指将显示内容转为声音或盲文显示,帮助特殊人群)。

4.2 Phark方法

h2{
background-image:url(hello_world.gif) no-repeat;
 width:150px;
 height:35px;
 text-indent:-5000px;
}
<h2>hello word</h2>

原理使用很大的文本缩进,解决屏幕阅读器的问题,但当关闭图像,打开css是无效,我们开不见文本。

4.3 sIFR技术

总结

学习了背景的像素百分比定位
学习了设置圆框的几种方法(固定宽度,滑动门,山顶角,border-radius,border-image)
学习了css视差(关键是背景百分比定位)
学习了图像替换技术(display:none,text-indent:-5000px);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,727评论 1 92
  • 1.HTML微格式 由于HTML中缺少相应的元素,很难突出显示人、地点或日期等类型的信息。为了解决这个问题,有一组...
    韩懿軒阅读 696评论 0 4
  • 1.块级元素和行内元素 块级(block-level)元素;行内(内联、inline-level)元素。 块元素的...
    饥人谷_小侯阅读 1,985评论 1 4
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,303评论 0 11
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 1,027评论 0 1