CSS盒模型与字体图标

CSS盒模型


CSS盒模型指在一个网页文档中,每个元素都被呈现为一个矩形的盒子,描述了元素所占空间的内容。它包括内容(content)、内边距(padding)、边框(border)与外边距(margin),主要分为W3C盒模型与IE盒模型。

  1. W3C盒模型


    image

    W3C盒模型的width与height只含content,不包括padding和border。

  2. IE盒模型


    image

    IE盒模型的width与height是content、padding和border的总和。

CSS的box-sizing属性


box-sizing属性允许用户以特定的方式定义匹配某个区域的特定元素。其值主要有content-boxborder-boxinherit

  1. content-box:这是由 CSS2.1 规定的宽度高度行为。宽度和高度分别应用到元素的内容框。在宽度和高度之外绘制元素的内边距和边框。
  2. border-box:为元素设定的宽度和高度决定了元素的边框盒。就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。
  3. inherit:规定应从父元素继承 box-sizing 属性的值。

line-height值“2”与“200%”的区别


  • line-height: 2表示单行文本的行高为其自身大小的两倍。而line-height: 200%表示单行文本的行高为其父元素大小的两倍。
  • 在继承性上,对父元素设置line-height: 2后,其子元素会继承line-height: 2属性,行高均为自身大小的两倍,行高随子元素字体大小变化;而父元素设置line-height: 200%后,子元素的行高为父元素大小的两倍,行高不随子元素字体大小变化,而只与父元素有关

inline-block元素的空隙与对齐问题


一、空隙问题

两个inline-block元素之间如果有空格、回车、tab等那么页面显示就有一个空隙,去除空隙主要有如下方法:

  1. 代码间无间隙:上一个d元素闭合标签>写在下一个元素开始标签<之前。
<p>代码无间隙</p
><p>代码无间隙</p>
  1. 对父元素设置font-size:0:给父元素设置font-size:0后,对其子元素设置相应字体大小。
<style>
  body{
    font-size: 0;
  }
  div{
    display: inline-block;
    width:200px;
    height:200px;
    font-size:16px;
  }
</style>
  1. 使用负外边距:
<style>
  div{
    display: inline-block;
    width:200px;
    height:200px;
    font-size:16px;
  }
  .block1{
    margin-left:-5px;
  }
  .block2{
    margin-left:-5px;
  }
</style>

二、对齐方式

  1. 顶部对齐:vertical-align:top;
  2. 底部对齐:vertical-align:bottom
  3. 中心对齐:vertical-align:center

CSS Sprites图


CSS Sprites图也叫 CSS精灵图雪碧图,是一种网页图片应用处理方式。它其实就是把网页中一些背景图片整合到一张图片文件中,再利用CSS的background-imagebackground-repeatbackground-position的组合进行背景定位,background-position可以用数字精确的定位出背景图片的位置。

Sprites图的优点

  • 减少图片的字节与存储数量。
  • 减少网页的http请求,从而大大提高了页面性能。
  • 减少命名难的问题。

Sprites图的缺点

  • 图片合并比较繁琐,必须把多张图片有序合理地合并成一张图片,还要留好足够的空间,防止板块内出现不必要的背景。
  • 在宽屏,高分辨率的屏幕下的自适应页面,图片如果不够宽,容易出现背景断裂
  • 维护比较麻烦。如果页面背景有少许改动,一般就要改这张合并的图片,无需改的地方最好不要动,这样避免改动更多的CSS,如果在原来的地方放不下,又只能(最好)往下加图片,这样图片的字节就增加了,还要改动CSS。
    实例地址

元素不可见的方法


  1. display: none;:给元素设置display: none;后,元素会从页面中彻底消失,它原本占据的空间会被其他元素占有,会造成浏览器的回流与重绘。
  2. visibility: hidden;:给元素设置visibility: hidden;后,元素会从页面中消失,它原本占据的空间会被保留,会造成浏览器的重绘,适用于希望元素隐藏又不影响页面布局的场景。
  3. opacity: 0;:给元素设置opacity: 0;后,元素变成透明,所以原本占据的空间还在。
  4. 设置盒模型属性为0:将heightwidthpaddingbordermargin等盒模型属性的值全设为0,如果元素內还有子元素或内容,还应overflow: hidden;来隐藏子元素。
  5. 设置元素绝对定位toprightbottomleft等将元素移出屏幕。
.box1{
    position: absolute;
    top: 9999px;
}
  1. 设置元素的绝对定位与z-index,将z-index设置成尽量小的负数:但z-index是相对而言的 ,用z-index就要设置其他元素的z-index值,且如果元素本身占据空间很大就不一定会被z-index值比它大的元素完全覆盖,所以不推荐这种方法。

字体图标的原理


字体图标相当于用户自己建立了一个字体库,只不过这个字体库存放的不是文字而是图标。当需要使用指定图标时,在代码中让浏览器先先导入字体库,然后用对应的unicode码或类进行查找并引用即可。

利用iconfont的 Font class 使用字体图标

1.打开 iconfont ,搜索需要的图标添加入库
2.添加入库后打开购物车,把图标添加至项目(若没有项目则新建一个)

  1. 选择 Unicode 旁的 Font class
  2. 编辑修改图标名称(英文小写)
  3. 更新代码并复制,使用 <link> 引入
  4. body 内容中设置 class 如下:
<span class="iconfont icon-moon"></span>

其中iconfont为网站默认设置的font-family名称,icon-moon为用户修改的图表名称
预览地址
查看代码

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,727评论 1 92
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 4,422评论 5 15
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,304评论 2 66
  • 惜缘,随缘
    怀侠阅读 189评论 0 0
  • 光学镀膜更换铝箔,上午TiO2 离子源条件beam 550、500,ACC600,下午纳睿ARHR。 lpcvd ...
    笑蚊子阅读 78评论 0 0