任务9extra_CSS常见技巧

课程目标

熟悉常见的样式写法,如背景图片、居中、透明等

学习建议

问答题一定要动手写 demo,否则学习效果只能达到5成

预习视频&课件

课程任务

问答

一、CSS Sprite(雪碧图|精灵图)指什么? 有什么作用

  • CSS Sprite定义与作用
  • 雪碧图被运用在众多使用了很多小图标的网站上。相对于把每张小图标以.png格式文件的形式引用到页面上,使用雪碧图只需要引用一张图片,对内存和带宽更加友好。
  • CSS Sprite运用实例
    假设我们通过.toolbtn的类,为应用该类的各元素提供一张背景图片:
<style> 
.toolbtn {
background:url(myfile.png); 
display:inline-block; 
height:20px; 
width:20px 
} 
</style>

背景位置,可以通过在background的url()直接定义X,Y轴的值,或者通过background-position属性来添加。例如:

<style>
#btn1 {background-position: -20px 0px}
#btn2 {background-position: -40px 0px}
</style>

id=btn1的元素背景左移20px,id=btn2的元素背景左移40px(假设这两个元素的都添加了toolbtn类,应用了上面样式定义的图片效果)
类似的,你也可以使用下面的方式添加hover的状态:

#btn:hover {
background-position: [pixels shifted right]px [pixels shifted down]px;
}

自己来举个例子
1.首先将从iconfont下载的三种不同的“火箭”图放入雪碧图在线制作工具里



2.设置好相关参数后即可生成下载制作好的雪碧图



3.对照网站所呈现的参数,对html进行设置从而达到相应的效果
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>雪碧图练习</title>
</head>
<style type="text/css">
div {
        height: 200px;
        width: 200px;
        margin: 100px;
        display: inline-block;
        background: url(./result.png) 0 0 no-repeat;
        border: 1px solid;
    }

    .s1 {
        background-position: -500px 0;
    }

    .s2 {
        background-position: -1000px 0px;
    }
}
</style>

<body>
    <div class="s1"></div>
    <div class="s2"></div>
    </div>
</body>

</html>

参考文章:

二、img标签和CSS背景使用图片在使用场景上有何区别

  • img标签的使用场景
  • 希望该图片默认可以被点击
  • 利用img标签的alt属性可以给图片添加一些重要的信息,使得读者在图片在加载失败的情况下也能了解一些图片的信息
  • 使用img如果你依赖于浏览器缩放来呈现正比于文字大小的图像
  • 利用img实现在IE6中多个图片的叠加
  • 使用img可以极大地提高一个背景动画的性能
  • CSS背景的使用场景
  • 不希望该图片默认不能被点击
  • 使用CSS背景图片如果该图片不是网页内容的一部分
  • 使用CSS背景图片实现图像替换文字
  • 使用CSS背景图片可以减少网络请求,提高加载速度,比如利用雪碧图
  • 使用CSS背景图片可以实现仅让图片的一小部分显示,比如利用雪碧图
  • 使用CSS背景图片中的background-size: cover可以实现一个图片铺满整个窗口的效果

参考文章:

三、title和alt属性分别有什么作用

  • title:为设置该属性的元素提供建议性的信息
  • title表示元素的额外信息说明,给读者以思考是否有兴趣点击
  • title为全局属性,可以应用到任何的元素上
  • alt:它规定在图像无法显示时的替代文本
  • alt在图片加载不了的情况下为图片提供了内容说明,告诉读者图片是什么内容
  • alt只能运用于area inputimg标签

以下为实例

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>about title and alt</title>
  </head>
  <body>
    <a href="http://bbs.hupu.com/rockets" title="前往虎扑篮球论坛火箭专区" target="_blank"><img src="XXX" alt="虎扑篮球" /></a>
  </body>
</html>

以下为输出结果


参考文章:

四、background: url(abc.png) 0 0 no-repeat;这句话是什么意思

background 是CSS简写属性,用来集中设置各种背景属性。background 可以用来设置一个或多个属性:background-color, background-image, background-position, background-repeat, background-size, background-attachment,background-origin。

  • background-color:设置元素的背景色

  • background-image:为页面元素指定一个或多个背景图

  • background-position:指定背景图片的初始位置

  • background-repeat:指定背景图片是否以平铺效果重复出现,以及重复的方式

  • background-size:设置背景图片大小

  • background-attachment:决定背景是在视口中固定的还是随包含它的区块滚动的

  • background-origin:决定了background-position的初始位置

以上各个背景属性的描述详见:饥人谷知识点三:background那些事儿

由此可见,background: url(abc.png) 0 0 no-repeat;实际上是background属性的简写版本,可以拆分为以下三个语句

background: url(abc.png)/*使用背景图片abc.png*/
background-position: 0 0;/*指定背景图片的初始位置为0 0*/
background-repeat: no-repeat;/*背景图片不会沿着X轴和Y轴不断重复平铺整个页面*/

五、background-size有什么作用? 兼容性如何? 常用的值是?

六、如何让一个div水平居中?如何让图片水平居中

  • 如何让一个div水平居中,换句话可以说如何让一个块级元素水平居中
  • 仅需设置左右margin为auto即可
  • 如何让一个图片水平居中,换句话可以说如何让一个行内元素水平居中
  • 设置其父容器的块级元素为text-align: center,即可让该图片相对于其父容器的块级元素水平居中

以下为实例

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>Horizontal Center</title>
</head>
<style>
    .container {
        width: 300px;
        height: 200px;
        border: 1px solid;
        text-align: center;
        margin-left: 50px;
        margin: auto;
    }
</style>

<body>
    <div class="container">
        <img src="./火箭-红.png" alt="火箭logo" />
    </div>
</body>

</html>

以下为输出结果


七、如何设置元素透明? 兼容性?

设置元素的透明度有两种方法

  • opacity:会继承父元素的opacity属性,父容器的下所有元素都设置为透明
  • 语法
img{ 
opacity:0.4; 
filter:alpha(opacity=40); /* For IE8 and earlier */
}
  • rgba:设置的元素的后代元素不会继承不透明属性,只是针对自己本身有效
  • 语法
background-color: rgba{255,0,0,0.5};

opacity兼容性如下



rgba兼容下如下


八、opacity和rgba都能设置透明,有什么区别

  • opacity:会继承父元素的opacity属性,父容器的下所有元素都设置为透明
  • rgba:设置的元素的后代元素不会继承不透明属性,只是针对自己本身有效

以下为实例

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>opacity and rgba</title>
    <style>
        div {
            height: 100px;
            width: 300px;
            border: 1px solid;
            background: blue;
            display: inline-block;
        }
        
        .div1 {
            opacity: 0.5;
        }
        
        .div2 {
            background: rgba(0, 0, 255, 0.5)
        }
    </style>
</head>

<body>
    <div class="div1">
        这是opacity设置的透明度
    </div>
    <div class="div2">
        这是rgba设置的透明度
    </div>
</body>

</html>

以下为输出结果


代码


本教程版权归本人和饥人谷所有,转载须说明来源

内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容
<small>文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容</small>

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,629评论 1 92
  • 一、CSS Sprite(雪碧图|精灵图)指什么? 有什么作用? CSS Sprite把多个背景图片合成为一张,通...
    dengpan阅读 302评论 0 0
  • 一、CSS Sprite(雪碧图|精灵图)指什么? 有什么作用 1、css sprite是一种图片处理方法,就是将...
    鸿鹄飞天阅读 364评论 0 0
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    程序员poetry阅读 16,460评论 32 459
  • 电子商务与电子业务的区别和联系 答:电子商务是利用计算机网络--特别是互联网实现买卖、交换、配送商品、服务、信息的...
    NoFacePeace阅读 297评论 0 1