CSS布局

作为一名经常接触网站,并且写过网站的人来说,css可以说是既熟悉又陌生。熟悉是因为,基本上没有搞网站的人不知道css的,陌生是因为很多人不会去花很大的精力钻研css,基本上是大概了解。CSS看似简单直接,实则有很多细节有待回味,而这些细节和浏览器的CSS解释器逻辑紧密相关。
CSS在这个层面上,和正则表达式,对于非专业前端网络工程师是差不多的。是个工具,但是总不太愿意花很多时间在这两个技术的钻研上。我就是如此,所以以此,作为对css在使用中涉及的相关知识进行总结。

这里非常推荐这个网站学习css布局学习CSS布局

块与内联

元素分类

块级元素按照其应用于结构还是内容分为三种:结构化块状元素,终端块状元素,多目标块状元素。
具体各个分类请参考 html块状元素、内联元素

块元素

块元素(block element) 通常作为其它元素的容器,它可以容纳内联元素和其它块元素。 默认情况下,块元素会顺序以每次另起一行的方式往下排,而通过CSS控制其样式,我们可以改变这种默认布局模式,把块元素摆放到你想要的位置上去。需要指出的是,table标签也是块元素的一种,基于table表格和基于CSS+DIV的布局,在使用者看来除了页面载入速度的差别(table在所有内容元素加载完成后才显示),没有其它的差别。但是从页面的源代码来看,这种差异就非常大了。基于良好结构理念设计的CSS布局源码,至少能让没有 web开发经验的用户很容易找到连续的页面内容。从这个角度来说,CSS layout code应该有更好的美学体验。 我们可以把模块化的DIV想象成一个个box,然后把它们按自己的意愿排列组成完整的内容,网页布局设计就是遵循了同样的模式

块级元素(block)特性
  • 总是独占一行,表现为另起一行开始,而且其后的元素也必须另起一行显示
  • 宽度(width)、高度(height)、内边距(padding)和外边距(margin)都可控制;
内联元素

内联元素(inline element) 一般都是基于语义级(semantic)的基本元素,只能容纳文本或者其它内联元素

内联元素(inline)特性
  • 和相邻的内联元素在同一行
  • 高度,行高以及顶、底边距不可改变
  • 宽度就是它所容纳的文字或图片的宽度,不可改变

以上是对块和inline的简单说明,这个和定位有关。同时还有inline-block,有待研究

CSS定位

静态定位

各个元素按照inline和block的自然方式排列。
此时的left和top无效
position:static

相对定位

元素基于静态定位的常规位置,进行偏移
此时
postion: relative
top和left用来控制偏移
** 注意 **:top,left这类控制偏移的属性指的是,上边和左边距离常规位置的距离。如果值为百分比,指的是相对于当前元素宽度的百分比长度。

绝对定位

postion:absolute
绝对定位是以整个网页的视区为基准的。

固定定位

postion:fixed;
固定定位是以用户的当前视区为基准的。所谓的滚动跟随就是用fixed实现的。

浮动

参考以下效果,很明显看出img被文字包围了。
正常显示应该是图片正下方是文字,而这里文字像流水一样float到了图片的空档处。


Paste_Image.png

如果设置float:left|right。那么该元素会浮动到左边界或者右边界。可以设置为none,那么则无float效果。
如果float,则在空档位置会被其他元素包围。

clear

clear属性可以用来清除元素的float效果,所谓清除是指,该元素本身,不会由于其他相邻元素设置了float之后,自身需要去float元素的空档补位。简单说,就是clear后就不去补位,呆在自己的位置上。并不是清除自身的float这个属性的值!

注意 :float会导致元素脱离文档流,也就是说float元素本身不被算在常规位置的block体内,而是上浮了,所以叫做float呢。

这个部分很绕,但是找到了这个经验分享:CSS浮动(float,clear)通俗讲解
弄清楚float,很重要,因为很多并行的排版定位就是靠float才能得以实现哦。

参考文档:
html块状元素、内联元素
学习CSS布局
经验分享:CSS浮动(float,clear)通俗讲解

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,629评论 1 92
  • CSS布局模型 布局:将元素以正确的大小摆放在正确的位置上 CSS包含3种基本的布局模型流动模型(Flow)浮动模...
    _空空阅读 972评论 0 4
  • 前言 温馨提示:本文较长,图片较多,本来是想写一篇 CSS 布局方式的,但是奈何 CSS 布局方式种类太多并且实现...
    sunshine小小倩阅读 3,010评论 0 59
  • 以前对CSS布局有些接触,但是因为没有系统的学习过,导致每次在调整和修改起来都觉得比较困难,为了解决这个难啃的骨头...
    颭夏阅读 1,223评论 0 29
  • Chy_www阅读 324评论 3 0