CSS基本语法(三)
CSS基础语法(三)
十五、CSS定位
1、为什么要使用定位
浮动可以让多个块级盒子一行没有缝隙排列显示,经常用于横向排列盒子
定位则是可以让盒子自由的在某个盒子内移动位置或者固定屏幕中某个位置,并且可以压住其他盒子
2、定位组成
定位:将盒子定在某个位置,所以定位也是在摆放盒子,按照定位的方式拖动盒子
定位 = 定位模式 + 边偏移
- 定位模式用于指定一个元素在文档中的定位方式。边偏移则决定了该元素的最终位置
定位模式
定位模式决定元素的定位方式,它通过CSS的position属性来设置,其值可以为
| 值 | 语义 |
|---|---|
| static | 静态定位 |
| relative | 相对定位 |
| absolute | 绝对定位 |
| fixed | 固定定位 |
静态定位
静态定位是元素默认定位方式,无定位的方式
选择器 { position: static; }
静态定位按照标准流特性摆放位置,它没有边偏移
静态定位在布局时很少用到
相对定位
相对定位是元素在移动位置的时候,是相对原来的位置来说的(自恋型)
选择器 { position: relative; }
特点
- 它是相对自己原来的位置来移动的(移动位置的时候参照点是自己原来的位置)
- 原来在标准流的位置继续占有,后面的盒子仍然以标准流的方式对待它(不脱标,继续保留原来的位置)
绝对定位**
绝对定位是元素在移动位置的时候,是相对于它祖先元素来说的(拼爹型)
选择器 { position: absolute; }
绝对定位特点
- 如果没有父元素或者祖先元素没有定位,则以浏览器为准定位
- 如果祖先元素有定位(相对、绝对、固定定位),则以最近一级的有定位祖先元素为参考点移动位置
- 绝对定位不再占用原来的位置(脱标)
固定定位
固定定位是元素固定于浏览器可视化的位置,主要使用场景:可以在浏览器页面滚动时,元素位置不会改变
选择器 { position: fixed; }
特点
- 以浏览器的可视窗口为参照点移动元素
- 跟父元素没有任何关系
- 不随滚动条滚动
- 固定定位不在占有原先的位置
- 固定定位也是脱标的,其实,固定定位也可以看做一种特殊的绝对定位
小技巧
- 让固定定位的盒子
left: 50%走到浏览器可视区(也可以看做版心)的一半位置- 让固定定位的盒子
margin-left: 版心宽度的一半距离,多走版心宽度的一半位置,就可以让固定定位的盒子贴着版心向右侧对齐了
粘性定位
粘性定位可以被认为是相对定位和固定定位的混合
选择器 {
position: sticky;
top: 80px;
}
粘性定位的特点
- 以浏览器的可视窗口为参照点移动元素(固定定位特点)
- 粘性定位占有原先的位置(相对定位的特点)
- 必须添加
top、left、bottom、right其中一个才可以- 跟网页滚动搭配使用,兼容性较差,IE不支持
边偏移
边偏移就是定位的盒子移动到最终位置。有top、bottom、left和right4个属性
| 边偏移属性 | 描述 |
|---|---|
| top | 顶端偏移量,定义元素相对于去父元素上边线的距离 |
| bottom | 底端偏移量,定义元素相对于去父元素下边线的距离 |
| left | 左侧偏移量,定义元素相对于去父元素左边线的距离 |
| right | 右端偏移量,定义元素相对于去父元素右边线的距离 |
子绝父相
子级是绝对定位,父级是相对定位
- 子级绝对定位,不会占有位置,可以放到父盒子里面的任何一个位置,不会影响其他的兄弟盒子
- 父盒子需要加定位限制盒子在父盒子内显示
- 父盒子布局时,需要占有位置,因此父亲只能是相对定位
因为父级需要占有位置,因此是相对定位;子盒子不需要占有位置,则是绝对定位
当然,子绝父相不是永远不变的,如果父元素不需要占有位置,子绝父绝也会遇到
3、定位的叠放次序
在使用定位布局时,可能会出现盒子重叠的情况。此时,可以使用z-index来控制盒子的前后次序(z轴)
选择器 { z-index: 1; }
数值可以是正整数、负整数或0,默认是auto,数值越大。盒子越靠上
如果属性值相同,则按照书写顺序,后来居上
数字后面不能加单位
只有定位的盒子才有这个属性
4、拓展
绝对定位的盒子居中
加了绝对定位的盒子不能通过margin: 0 auto;水平居中,但是可以通过以下计算方法实现水平和垂直居中
left: 50%:让盒子的左侧移动到父级元素的水平居中的位置margin-left: 100px:让盒子向左移动自身宽度的一半
定位特殊特性
绝对定位和固定定位、浮动类似
- 行内元素添加绝对或者固定定位,可以直接设置宽度和高度
- 块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认是内容大小
脱标的盒子不会触发外边距塌陷
浮动元素、绝对定位(固定定位)元素的都不会触发外边距合并的问题
绝对定位会完全压住盒子
浮动元素不同,只会压住它下面标准流的盒子,但是不会压住下面标准流盒子里面的文字
但是绝对定位(固定定位)会压住下面标准流所有内容
浮动之所以不会压住文字,因为浮动产生的目的最初是为了做文字环绕效果的。文字会围绕浮动元素
5、网页布局总结
通过盒子模型,清楚知道大部分HTML标签是一个盒子
通过CSS浮动、定位可以让每一个盒子排列成为网页
一个完整的网页,是标准流、浮动、定位一起去完成布置的,每个都有自己的专门用法
标准流
可以让盒子上下排列或者左右排列,垂直的块级盒子显示就用标准流布局
浮动
可以让多个块级元素一行显示或者左右对齐盒子,多个块级盒子水平显示就用浮动布局
定位
定位的最大特点是有层叠的概念,就是可以让多个盒子前后叠压来显示。如果元素自由在某个盒子内移动就用定位布局
十六、元素的显示与隐藏
类似网站广告,当我们点击关闭就不见了,但是我们重新刷新页面,会重新出现
本质:让一个元素在页面中隐藏或者显示出来
1、 display显示隐藏**
display用于设置一个元素应如何显示
display: none; /* 隐藏对象 */
display: block; /* 除转换为块级元素之外,同时还有显示元素的意思 */
display隐藏元素后,不再占有原来的位置
2、 visibility可见性
visibility属性用于指定一个元素应可见还是隐藏
visibility: visible; /* 元素可视 */
visibility: hidden; /* 元素隐藏 */
visibility隐藏元素后,继续占有原来的位置
- 如果隐藏元素想要原来的位置,就用
visibility: hidden;- 如果隐藏元素不想要原来的位置,就用
display: none
3、 overflow溢出
overflow属性指定了如果内容溢出一个元素的框(超出其指定高度及宽度)时,会发生什么
overflow: visible; /* 显示溢出(默认) */
overflow: hidden; /* 隐藏溢出部分 */
overflow: scroll; /* 溢出部分显示滚动条,不溢出也显示滚动条 */
overflow: auto; /* 自动判别,如果需要,就使用滚动条 */
一般情况下我们都不想让溢出内容显示出来,因为溢出部分会影响布局
但是如果有定位的盒子,请慎用
overflow: hidden因为它会隐藏多余部分
CSS基本语法(三)的更多相关文章
- css基础语法三
[]伪类选择器] 1.写法: 伪类选择器,在选择器后面,用:分隔,紧接伪类状态: eg : .a:link 2. 超链接的伪类状态: :link - 未访问状态 :visited - 已访问状态 :h ...
- CSS基础语法(三) CSS的6种特性
样式表常用写法及特性(组合.继承.关联性.权值性.层叠性.重要性) 1.样式的组合:把具有相同声明定义的选择符组合在一起,并用逗号隔开.-例如:段落元素p.单元格元素td和类c1可以使用相同样式: p ...
- HTML 网页开发、CSS 基础语法——三. HTML概念
1.纯文本格式 纯文本格式,就是没有任何文本修饰的,没有任何粗体,下划线,斜体,图形,符号,或者特殊字符,及特殊打印格式的文本,只保存文本,不保存其格式设置. ①格式对比 纯文本格式 富文本格式 最常 ...
- 常用的CSS缩写语法一些方法小结
使用缩写可以帮助减少你CSS文件的大小,更加容易阅读.css缩写的主要规则如下: 颜色 16进制的色彩值,如果每两位的值相同,可以缩写一半,例如: #000000可以缩写为#000;#336699可以 ...
- css 基本语法及页面引用:
css基本语法: css的定义方法是: 选择器{ 属性:值; 属性:值; 属性:值; } 选择器是将样式和页面元素关联起来的名称,属性是希望设置的样式属性,每个属性有一个或多个值. 如: div{ w ...
- css基本概念与css核心语法介绍
css基本概念 css是什么?不需要了解太多文字类介绍,记住css是层叠样式表,HTML是页面结构,css负责页面样式,javascrt负责静态页面的交互.CSS 能够对网页中元素位置的排版进行像素级 ...
- CSS基础语法(一)
目录 CSS基础语法(一) 一.CSS简介 1.CSS语法规范 2.CSS代码风格 二.CSS基础选择器 1.标签选择器 2.类选择器 3.id选择器 4.通配符选择器 5.总结 三.CSS字体属性 ...
- CSS基本语法(二)
目录 CSS基本语法(二) 八.CSS复合选择器 1.后代选择器** 2.子选择器 3.并集选择器** 4.伪类选择器 链接伪类选择器 :focus伪类选择器 总结 九.CSS的元素显示样式 1.概念 ...
- 《网页设计基础——CSS常用语法》
网页设计基础--CSS常用语法 一.注释: 例如: /* 在此处书写注释 */ 二.清除浏览器默认设置: 例如: *{ /* 全局声明 */ margin: 0; padding: ...
随机推荐
- ACwing1015. 摘花生
题目: Hello Kitty想摘点花生送给她喜欢的米老鼠. 她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来. 地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过 ...
- JAVA将Byte数组(byte[])转换成文件
/** * 将Byte数组转换成文件 * @param bytes byte数组 * @param filePath 文件路径 如 D://test/ 最后"/"结尾 * @par ...
- Mybatis一对一、一对多级联查询使用
在A对象的xml配置文件中 一对一<association property="shop" column="shop_id" select="c ...
- 『与善仁』Appium基础 — 26、常用手机操作的API说明
目录 1.获取当前手机的时间 2.获取手机屏幕的宽和高 3.获取手机当前网络 4.设置手机网络模式 5.操作手机通知栏 6.综合练习 7.发送键到设备(掌握) 8.手机截图(掌握) 是针对手机一些常用 ...
- 【LeetCode】1181. Before and After Puzzle 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 保存首尾字符串 日期 题目地址:https://lee ...
- 【LeetCode】824. Goat Latin 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- Buy Tickets(poj2828)
Buy Tickets Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 17416 Accepted: 8646 Desc ...
- Log4自定义Appender介绍
最初想要在执行一段业务逻辑的时候调用一个外部接口记录审计信息,一直找不到一个比较优雅的方式,经过讨论觉得log4j自定义的appender或许可以实现此功能.后来就了解了一下log4j的这部分. Ap ...
- oralce索引的使用
1.索引的作用 数据库对象 用于提高数据库检索的效率,对于where,group,order by条件中经常出现的字段,创建索引可以加快效率 缺点:如果对于大量的数据插入时效率可能会变低 2.索引的使 ...
- CS229 机器学习课程复习材料-线性代数
本文是斯坦福大学CS 229机器学习课程的基础材料,原始文件下载 原文作者:Zico Kolter,修改:Chuong Do, Tengyu Ma 翻译:黄海广 备注:请关注github的更新,线性代 ...