html+css布局必备基础知识汇总

1. 布局必备基础知识

1.1 标签类型及特性

1.1.1 行内元素(内联元素)

  1. 常见的行内标签有:

a、span、strong、b、em、i等。

  1. 内联元素特点:
  • 和其他元素都在一行上;
  • 高及外边高,行距和内边距部分可改变;
  • 宽度只与内容有关;
  • 行内元素只能容纳文本或者其他行内元素。

1.1.2 行内块元素

  1. 常见的行内块元素有:

img、 input 、 button、 select、 textarea等。

  1. 行内块元素特点:
  • 内部表现为块级元素,可设置宽高,支持盒模型。
  • 外部表现为行内元素 不独占一行,从左到右排列。

1.1.3 块级元素

  1. 常见的块级元素有:

div 、 section 、 ul 、 ol 、 dl 、 table 、form等。

  1. 块级元素特点:
  • 总是在新行上开始,占据一整行;
  • 高度,行高以及外边距和内边距都可控制;
  • 宽始终是与浏览器宽度一样,与内容无关;
  • 它可以容纳内联元素和其他块元素。

1.1.4 标签类型转换

行内大多为描述性标记,块级大多为结构性标记。
通过设置display:inline/inline-block/block可以修改标签的类型。

1.2 盒模型

1.2.1 标准盒模型(w3c)

image.png

1.2.2 怪异盒模型(ie)

image.png

1.2.3 盒模型的转换

为了保证网页在各个浏览器中显示一致,通常设置doctype声明,规定浏览器都按照w3c标准盒模型去渲染。假如不加 doctype 声明,那么各个浏览器会根据自己的行为去理解网页。

通过设置box-sizing:content-box/border-box可以转换盒模型。

1.3 定位(position)

1.3.1 普通流定位(static)

Position的默认值。没有定位,元素出现在正常的文档流中
(忽略 top, bottom, left, right 或者 z-index 声明)。

1.3.2 相对定位(relative)

生成相对定位的元素,相对于其正常位置进行定位。
元素仍然保持其未定位前的形状,它原本所占的空间仍保留

注意:
在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。 因此,移动元素会导致它覆盖其它标准文档流的框。

1.3.3 绝对定位(absolute)

绝对定位的元素的位置相对于最近的已定位祖先元素,
如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块。
绝对定位的元素框从文档流完全删除,因此不占据空间

1.3.4 固定定位(fixed)

固定定位的元素,相对于浏览器窗口进行定位。 将元素的内容固定在页面中的某个位置,元素从普通文档流中完全移除,不占用页面空间,当用户向下滑动页面元素框时并不随着移动
(固定在窗口的某处)。

相对定位是“相对于”元素在文档中的初始位置定位,而绝对定位是“相对于”最近的已定位祖先元素,如果不存在已定位的祖先元素,那么“相对于”最初的包含块进行定位。

1.4 浮动(float)

1.4.1 浮动的目的

最初时,浮动只能用于图像(某些浏览器还支持表的浮动),目的就是为了允许其他内容(如文本)“围绕”该图像,而后来的CSS允许浮动任何元素。

1.4.2 浮动的特点

浮动定位是将元素排除在普通标准文档流之外,元素将不占用空间,无法撑开父元素;

在没有定义具体宽度的情况下,使自身的宽度从100%变为自适应(浮动元素display:block,但是展现形式是display:inline-block)

浮动框可以向左或向右移动,直到它外边碰到包含框或者另一个浮动框; 浮动元素的外边缘不会超出其父元素的内边缘;

浮动的元素不会互相重叠,浮动元素也不会上下浮动(不类似z-index)。

1.4.3 清除浮动

由于浮动会使当前标签产生向上浮的效果,同时会影响到前后标签、父级标签的位置及 width height 属性。而且同样的代码,在各种浏览器中显示效果也有可能不相同,所以清除浮动很有必要。

8种CSS清除浮动的方法优缺点分析

1.5 Flex/Grid布局

Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性,亦可称其为“弹性盒模型”。

Flex布局 语法篇
Flex布局 实例篇

Grid布局 语法篇
Grid布局 实例篇

Flex布局与Grid布局的对比

  • CSS grids 适用于布局大画面。它们使页面的布局变得非常容易,甚至可以处理一些不规则和非对称的设计。2D 布局适合使用 CSS grids(行与列)。

  • Flexbox 非常适合对齐元素内的内容。你可以使用 Flex 来定位设计上一些较小的细节。Flexbox 适用于单一维度的布局(行或列)。

    Flex布局与Grid布局的对比

2. 布局类型及常见布局

2.1 布局类型

2.1.1 静态布局

传统Web设计,对于PC设计一个Layout,在屏幕宽高有调整时,使用横向和竖向的滚动条来查阅被遮掩部分。

2.1.2 自适应布局

特点是分别为不同的屏幕设置布局格式,当屏幕大小改变时,会出现不同的布局,意思就是在这个屏幕下这个元素块在这个地方,但是在那个屏幕下,这个元素块又会出现在那个地方。只是布局改变,元素并不变(页面元素不随窗口大小的调整发生变化)。可以看成是不同屏幕下由多个静态布局组成的。(技术点:媒体查询)

2.1.3 流式布局

特点是随着屏幕的改变,页面的布局没有发生大的变化,可以进行适配调整,这个正好与自适应布局相补。(不固定宽高,使用百分比)

2.1.4 响应式布局

分别为不同的屏幕分辨率定义布局,同时,在每个布局中,应用流式布局的理念,即页面元素宽度随着窗口调整而自动适配。 可以把响应式布局看作是流式布局和自适应布局设计理念的融合。

2.2 常见布局方式

常见布局方式

2.2.1 单列布局

2.2.2 多列布局

2.2.3 全屏布局

全屏布局

2.2.4 响应式布局

2.3 布局常用的技术

定位(绝对,相对)、浮动、flex布局、margin、table、@media媒体查询

3. 布局常见问题

3.1 水平垂直居中问题

水平垂直居中问题

3.2 清除浮动的问题

8种CSS清除浮动的方法优缺点分析

     常用清除浮动方法

        .clearfix:before,
        .clearfix:after {
            content: "";
            display: table;
        }
        .clearfix:after {
            clear: both;
        }
        .clearfix {
            *zoom: 1;
        }

3.3 文本溢出隐藏

1. 单行文本溢出

       .overflow_ellipse{
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

2. 多行文本溢出

       .overflow_ellipse{
          overflow : hidden;
          text-overflow: ellipsis;
          display: -webkit-box;
          -webkit-line-clamp: 要显示的行数;
          -webkit-box-orient: vertical ;
        }

3.4 其它

  1. 什么时候用padding和margin
    Padding是做内容距边框之间留白的,
    Margin是做容器与容器之间留白的。

  2. Css的继承属性有哪些?如何使子元素不具有父元素的属性?
    Css的继承属
    给子元素重写父元素的属性,并设置成自己的属性值

  3. 其它小坑
    css经验技巧

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,744评论 1 92
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 4,432评论 5 15
  • CSS 是什么 css(Cascading Style Sheets),层叠样式表,选择器{属性:值;属性:值}h...
    崔敏嫣阅读 1,478评论 0 5
  • 今早在图书馆无意看到一本书名,只要方向对了,就不怕路远。看似鸡汤的文字,却有蕴含着不可估量的力量,方向是多么重...
    返璞归桢阅读 7,537评论 0 7
  • 目的~用故事讲 触点~服务用户 关系~等于信息 故事比数据重要
    索班班阅读 96评论 0 0