一.  标准文档流

标准文档流中会有一些现象: 空白折叠 和 高低不齐边底对齐的现象

标准文档流等级森严, 标签分为两种等级: 行内元素 和 块级元素.

1. 行内元素 和 块级元素的区别:

行内元素:不能设置宽高, 默认的宽度就是文字的宽度;  与其他行内元素并排

块级元素:设置宽高, 如果不设置就默认宽度是父级的100%; 独占一行,不与其它任何元素并列

2. 标签分类

在HTML中已经将标签分过类了,当时分为文本级 和 容器级

a)     从HTML的角度来讲,标签分为:

文本级标签:  p,  span,  a,  u下划线,  i斜体(已废弃),  em斜体(已废弃),  b粗体(已废弃)

容器级标签:  div,  li,  dt,  dd, h系列

这里为什么说p是文本级标签呢? 因为p里面只能放 文字, 图片, 表单.

P里不能放h系列, 不能放ul 也不能放p.

b)     现在从css角度看和上面很像,就p不一样:

行内元素: 除了p之外,所有的文本级标签都是行内元素.  P是文本级标签但是是个块级元素

块级元素:所有的容器级标签 div lid dt dd h, 还有 p 标签

3. 块级元素和行内元素的转换

我们可以通过display属性将块级元素和行内元素相互转换

块级元素转行内元素:   设置display:inline;

行内元素转块级元素:  设置display:block;

4. 脱离标准文档流

标准文档流的限制非常多,导致很多页面效果无法实现. 如果我们想要并排而且要设置宽高(行内元素不能设置宽高的), 那么就需要浮动, 脱离标准文档流.

二.  浮动

浮动是css里面布局最多的一个属性,也是很重要的一个属性. float表示浮动,有以下的属性值:

float: none; 不浮动,默认

left 左浮动

right 右浮动

浮动要想学好,就得知道浮动的四大特性:

  1. 浮动的元素脱标(就是脱离标准文档流), 标签一旦设置浮动,就能够并排了. 而且不再区分行内元素和块状元素, 都可以设置宽高
  2. 浮动的元素会相互贴靠
  3. 浮动的元素有”字围”效果
  4. 收缩的效果,就是一个浮动元素如果没有设置width, 那么就自动收缩为文字的宽度(这点和行内元素很像)

三.  清除浮动

先看一个html和css的代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.father{
width: 1126px; }
.box1{
width: 200px;
height: 200px;
float: left;
background-color:pink;
}
.box2{
width: 100px;
height: 100px;
float: left;
background-color:red;
}
.box3{
width: 200px;
float: left;
height: 100px;
background-color:grey;
}
.father2{
width: 1126px;
height: 400px;
background-color:yellow;
}
</style>
</head>
<body>
<div class="father">
f1
<div class="box1">box1</div>
<div class="box2">box2</div>
<div class="box3">box3</div>
</div>
<div class="father2">f2</div>
</body>
</html>

效果是如果不给父盒子一个高度的话, 那么浮动的子元素是不会填充父盒子的高度, 此时.father2 的盒子就跑到第一个位置上去了, 影响页面的布局.

浮动可以实现页面元素并排的效果, 这是好处, 但是会影响布局, 所以我们要清除浮动.

清除浮动有4种方式:

  1. 给父盒子设置高度
  2. 内墙法(给浮动元素的后面加一个块级标签,再给这个标签设置clear:both属性)
  3. 伪元素清除法(常用)
  4. overflow: hidden(常用)

应用: 伪元素清除浮动的写法:

给浮动元素的父盒子, 就是不浮动的元素添加一个clearfix类,然后设置如下:

.clearfix{
content:.;
display:block;
height:0;
visibility:hidden;
clear:both;
}

关于overflow: 值

描述

visible

默认值,内容不会被修剪,会呈现在元素框之外

hidden

内容会被修剪,超出元素之外的部分不可见

scroll

不管内容是否超出元素框都会出现滚动条

auto

如果内容超出元素框,则浏览器会显示滚动条以便查看其余内容

inherit

规定继承父类元素的overflow属性值

逐渐演变成了overflow:hidden清除法

其实它是一个BFC区域,  具体参见:https://blog.csdn.net/riddle1981/article/details/52126522

四.  Margin中的坑

  1. Margin塌陷问题

当给两个标准流下的兄弟盒子设置垂直方向上的margin时候,那么以较大的值为准,那么我们称这种现象叫塌陷. 记住这种现象在布局垂直方向盒子的时候要注意margin的用法. 水平方向上没有塌陷

当我们给两个标准流下的兄弟盒子设置浮动之后,就不会出现塌陷问题了

  1. margin: 0 auto;

当一个div元素设置margin:0 auto; 之后盒子就会居中, 这表示上下外边距是0, 左右为auto的距离, 那么auto是什么意思呢?若设置margin-left:auto; 我们就会发现盒子尽可能大的右边有很大距离,没有什么意义. 同理,若设置margin-right:auto;盒子会尽可能大的左边有很大距离,当两条语句并存的时候,盒子尽可能大的左右两边有很大的距离,此时就居中了.

注意:

  1. 使用margin:0 auto; 的时候, 水平居中的盒子必须有width, 要有明确的width值
  2. 如果给盒子设置浮动, 或者固定定位, 或者绝对定位, 那么margin:0 auto就失效了
  3. Margin: 0 auto是使盒子居中而不是文本居中, 文字水平居中使用text-align:center
  4. 善于用父级的padding,而不是margin

另外一定要知道margin属性是兄弟盒子之间的, padding是父子盒子之间的

先看一下下面的代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.father{
width:300px;
height:300px;
background-color:blue;
}
.son{
width:100px;
height:100px;
background-color:orange;
margin-top:10px;
}
</style>
</head>
<body>
<div class="father">
<div class="son"></div>
</div>
</body>
</html>

运行上面的代码发现, 两个盒子整体下移动了30px, 其实我们是想让子盒子下移动30px, 父盒子不动, 但因为父盒子没有border, 所以父盒子也掉下来了. 一旦给父盒子加上border之后就可以了. 那么问题来了, 我们不可能无缘无故给父盒子加一个border啊, 所以此时解决的方法只有一个就是使用父盒子的padding, 让子盒子往下移动

五.  字体图标使用

阿里巴巴矢量图标库

web前端css(二)的更多相关文章

  1. Web前端-CSS必备知识点

    Web前端-CSS必备知识点 css基本内容,类选择符,id选择符,伪类,伪元素,结构,继承,特殊性,层叠,元素分类,颜色,长度,url,文本,字体,边框,块级元素,浮动元素,内联元素,定位. 链接: ...

  2. WEB前端 CSS(非布局)

    目录 WEB前端 CSS CSS引入方式 CSS结构 CSS选择器 直接选择器 组合选择器 分组选择器 也叫并集选择器 属性选择器 伪类选择器 伪元素选择器 CSS选择器是一个查找的过程,高效的查找影 ...

  3. 零基础学WEB前端-CSS

    CSS指层叠样式表(Cascading Style Sheets),CSS 是标准的布局语言,用来控制元素的尺寸.颜色.排版.CSS 由 W3C 发明,用来取代基于表格的布局.框架以及其他非标准的表现 ...

  4. web前端—css面试题

    1.CSS 选择符有哪些? 2.CSS 优先级的选择过程? 优先级复合就近原则,同权重的情况下有限选择最近的属性. 载入样式的话是以最后载入的定位为准. 优先级: !important > id ...

  5. QQ群web前端分析二——第一印象

    对QQ群WEB进行前端分析 入口是 http://qun.qzone.qq.com/ 以下为第一印象,主要是从我的理解上找问题. ----------------------------------- ...

  6. Bootstrap 简介(Web前端CSS框架)

    目录1.简介2.特点3.组件4.Javascript插件5.定制自己的框架代码6.Bootstrap Less 1.简介Bootstrap是Twitter推出的一个开源的用于前端开发的工具包.它由Tw ...

  7. Bootstrap(Web前端CSS框架)

    官方定义: Bootstrap is the most popular HTML, CSS, and JS framework for developing responsive, mobile fi ...

  8. web前端——CSS详解

    简介 CSS(Casading Style Sheet)是一组HTML元素外观的设置规则,用于控制web页面的表现形式,一般被翻译为"级联样式表"或"层叠样式表" ...

  9. [Web 前端] CSS篇之2. 清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法

    cp: https://blog.csdn.net/zengyonglan/article/details/53304487 2. 清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法 ? 一.什么时 ...

随机推荐

  1. WPF特效-鱼游动动画

    原文:WPF特效-鱼游动动画   实现思路:           通过VisualBrush Binding方式获取鱼局部图像,在Viewport3D中创建ModelVisual3D块并把获取到的局部 ...

  2. Flutter 开发环境搭建

    Flutter 开发环境搭建 官方的资料相对还是比较全面的,包含了很多中文的资料信息.官方对咱们国家的开发人员还是很友好的. 安装教程:https://flutter.io/get-started/i ...

  3. Win8Metro(C#)数字图像处理--2.27图像加法运算

    原文:Win8Metro(C#)数字图像处理--2.27图像加法运算  [函数名称] 图像加法函数AddProcess(WriteableBitmap src, WriteableBitmap a ...

  4. 什么是OTC?

    OTC(Over The Counter)非处方药物,我国卫生部医政司是这样定义的:它是消费者可不经过医生处方,直接从药房或药店购买的药品,而且是不在医疗专业人员指导下就能安全使用的药品,即不需要凭借 ...

  5. Win10的UWP之标题栏的返回键(二)

    原文:Win10的UWP之标题栏的返回键(二) 关于Win10的UWP的返回键的第二种处理的方法,是介于标题栏的强行修改,不是像上期的那样直接调用系统内置的API. - - - - - - - - - ...

  6. C#跳转语句

    1.break 退出直接封闭它的switch.while.do.for或foreach语句. 当有嵌套时,break只退出最里层的语句块. break不能跳出finally语句块. 2.continu ...

  7. cairo 图形库

    简介 提到cairo,估计很少知道这还是一个图形库的名字(http://cairographics.org),Linux的两大流行桌面环境KDE和Gnome,其对应的基础组件是QT和GTK+,相对于框 ...

  8. Delphi 编写ActiveForm窗体工程知识和样例(开发浏览器客户端应用程序)(有详细步骤)

    一.基础知识介绍: 1.ActiveForm的基础知识介绍: 在Delphi中,ActiveForm是封装了Delphi Form的一种ActiveX控件.ActiveForm其实是一种标准的Delp ...

  9. 解决xp越来越慢的办法(其中有些自动备份的功能)

    1.减少磁盘空间占用2.终止不常用的系统服务3.安全问题4.另外一些技巧 首先问一下,你是不是很想激活XP,不...准确的说你是不是想在ms的站上能够升级.如果答案是肯定的话,那我们就先来探讨一下安装 ...

  10. JPA 报错解决方案 com.microsoft.sqlserver.jdbc.SQLServerException: Cannot insert explicit value for identity column in table 'test_db' when IDENTITY_INSERT is set to OFF.

    这种错误插入数据时就是hibernate的自增长字段生成规则应该用native 在字段前加入注解 @GeneratedValue(generator="generator") @G ...