day49 定位布局和过渡动画
复习
1.盒子在父级水平居中
margin: 0 auto;
2.文本样式操作
color: red;
text-align: center;
font: 900 30px/200px "STSong", "微软雅黑"
<style>
div{
width: 200px;
height: 200px;
background-color: red;
}
div .div1 {
width: 100px;
height: 100px;
background-color: green;
margin: 0 auto;
text-align: center;
}
</style>
3.reset操作
清除默认样式
html,body,h1,h6,p,ul {
margin: 0;
padding: 0;
}
4.高级选择器
注: 每一个选择器位都可以替换为任意基础|高级选择器
① 群组: 控制多个
② 后代: 空格 | 子代: > eg: a > b | div b | div > a > b (类别 -> 个数 -> 位置)
③ 兄弟: ~ | 相邻: + eg: .b2 + .b3 | .b1 ~ .b3
④ 伪类(位置): nth-child(1|2n|3n-1)
5.边界圆角
border-radius: 20px 30px;
border-radius: 50%;
border-radius: 10px / 20px;
6.背景图片(精灵图)
backgroud: ulr("img/bg.png") no-repeat -200px -300px;
div:hover {
background-position-x: -400px;
}
今日内容
1.浮动布局
2.定位布局
3.过渡动画
:not 高级选择器(除去选择器之外的)
li:(:not(:nth-child(n)))
浮动布局
BFC(block format )
what|why: 让块级(block)标签在父级的宽度限制下同行显示, 一行显示不下, 自动换行
注: 要达到一行显示个数固定, 一定要固定父级的宽度
语法:
子级 {
float: left|right;
}
问题: 子级不再撑开父级高度 (不完全脱离文档流)
脱离文档流: => 层次结构会上移, 覆盖有位置重叠且没有脱离文档流的标签
不完全: 浮动布局后, 可以重新让子级撑开父级高度
清浮动: 让不完全脱离文档流的子级重新撑开父级的高度, 这种做法就叫做清浮动
语法:
父级:after {
content: "";
dislpay: block;
clear: both;
}
/*谁们需要同行排列, 谁们就用浮动布局处理*/
.ul1 li {
float: left;
/*float: right;*/
}
/*谁的高度没有被浮动子级撑开, 谁来清浮动*/
.ul1:after {
content: "";
display: block;
clear: both;
}
<!--了解-->
<!--:after | :before 伪类 -> 内容-->
<style>
.box:after {
/*display: block;*/
content: "000";
}
.box:before {
/*display: block;*/
content: "***";
}
</style>
<div class="box">123</div>
定位布局
固定定位
what|why: 盒子相对于屏幕完成位置布局, 不会随着屏幕内容的滚动而滚动(相对于屏幕窗口是静止的), 且和页面内容发生重叠时, 该布局下的内容显示层次更高(覆盖其他内容)
语法:
position: fixed;
固定定位总结:
1.参考系为页面窗口
2.一旦设置定位属性, top | bottom | left | right 四个方位(是定位属性盒子特有的)均可以参与布局
3.上下同时出现取上, 同理左右取左
4.固定定位会完全脱离文档流(永远不会撑开父级高度 => 布局中父级一定需要自己设置高度)
5.完全脱离文档流的盒子显示层次高于不脱离文档流的盒子,
两个完全脱离文档流盒子的显示层次可以z-index属性(脱离文档流盒子特有的)改变显示层次的顺序(值大者覆盖值小者)
<style>
.info {
width: 120px;
height: 220px;
background-color: orange;
/*info采用固定定位*/
position: fixed;
/*当盒子开的了定位属性,
该盒子及㐀通过 top | bottom | left | right 四个方位完成布局*/
top: 0;
left: 0;
z-index: 10;
}
.sup {
width: 200px;
height: 200px;
background-color: pink;
/*没有脱离文档流的盒子添加z-index属性无用*/
z-index: 1000;
}
/*无用*/
/*.sup:after {*/
/*content: "";*/
/*display: block;*/
/*clear: both;*/
/*}*/
.sub {
width: 100px;
height: 100px;
background-color: black;
position: fixed;
left: 50px;
right: 50px;
bottom: 50px;
top: 50px;
z-index: 1;
}
</style>
绝对定位
what|why: 兄弟标签之间不相互影响, 都参照父级的显示区域来完成布局
语法:
position: absolute;
绝对定位总结:
1.参考系为最近的定位父级(父级一般采用相对定位relative来辅助子级绝对定位)
2.一旦设置定位属性, top | bottom | left | right 四个方位(是定位属性盒子特有的)均可以参与布局
3.上下同时出现取上, 同理左右取左
4.绝对定位会完全脱离文档流(永远不会撑开父级高度 => 布局中父级一定需要自己设置高度)
5.完全脱离文档流的盒子显示层次高于不脱离文档流的盒子,
两个完全脱离文档流盒子的显示层次可以z-index属性(脱离文档流盒子特有的)改变显示层次的顺序(值大者覆盖值小者)
注意:父级一般情况下只是为了给子级绝对定位提供参考系
子级绝对定位下,必须要求参考系拥有定位
父级可以选取fixed|absolute定位,就会成为子级的参考系,
但是父级自身的布局就会因为fixed|absolute完全脱离文档流的特性,影响自身的布局
如何达到: 父级又能定位(为子级做参考), 又不脱离文档流(自身布局不收影响)
解决方案: 父级采用 相对定位
position: relative; /*父相子绝*/
相对定位
what|why: 核心用处 => 父相子绝
语法:
position: relative;
/*相对定位总结:
1.参考系为自身原有位置
2.一旦设置定位属性, top | bottom | left | right 四个方位(是定位属性盒子特有的)均可以参与布局
3.top = -bottom | left = -right (上下取上, 左右取左)
4.相对定位 不脱离文档流 => 不会影响自身布局, 自身布局采用的还是原来的布局
注: 相对定位定位方位只会改变显示图层, 不会改变盒子的原有位置, 原有位置不变就不会影响兄弟盒子
<style>
.box {
width: 200px;
height: 200px;
background-color: red;
margin-left: 100px;
margin-top: 200px;
}
.box {
position: relative;
top: 200px;
/*bottom: -10px;*/
/*bottom: 10px;*/
}
.bbb {
width: 200px;
height: 200px;
background-color: orange;
}
</style>
<div class="box"></div>
<div class="bbb">123</div>
过渡动画
/*持续时间*/(一般需要特别设置)
/*transition-duration: 3s;*/
/*延迟时间: (默认值)0*/
/*transition-delay: 1s;*/
/*过渡属性: (默认值)all | 属性1, ..., 属性n | eg:height, background-color */
/*transition-property: all;*/
/*过渡曲线: (默认值)ease*/
/*ease | ease-in | ease-out | ease-in-out | linear
cubic-bezier(0.83, 1.46, 0, -1.29)*/
/*transition-timing-function: cubic-bezier(0.83, 1.46, 0, -1.29);*/
/* 简写 */
/* 持续时间 延迟时间 过渡属性们 运动的贝塞尔曲线*/
/*transition: 2s 1s all cubic-bezier(0.83, 1.46, 0, -1.29);*/
transition: .3s linear;
/*需求: 没有高度时, 将所有子级内容隐藏*/
.box {
/*超出自己范围的内容如何处理*/
overflow: hidden;
}
day49 定位布局和过渡动画的更多相关文章
- [iOS]过渡动画之高级模仿 airbnb
注意:我为过渡动画写了两篇文章:第一篇:[iOS]过渡动画之简单模仿系统,主要分析系统简单的动画实现原理,以及讲解坐标系.绝对坐标系.相对坐标系,坐标系转换等知识,为第二篇储备理论基础.最后实现 Ma ...
- Vue - 解决路由过渡动画抖动问题
前言 Vue-Router 作为 Vue 的核心模块,它为我们提供了基于组件的路由配置.路由参数等功能,让单页面应用变得更易于管理.良好的路由管理尤为重要,比如路由拦截.路由懒加载.路由权限等都在开发 ...
- CSS基础篇之背景、过渡动画
background-origin(背景原点) 设置元素背景图片的原始起始位置.必须保证背景是background-repeat为no-repeat属性才能生效. background-origin: ...
- CSS3初学篇章_5(背景样式/列表样式/过渡动画)
背景样式 1.背景颜色语法:background-color : transparent | color body { background-color:#CCCCCC;} 2.渐变色彩语法:back ...
- Windows Store App 过渡动画
Windows Store App 过渡动画 在开发Windows应用商店应用程序时,如果希望界面元素进入或者离开屏幕时显得自然和流畅,可以为其添加过渡动画.过渡动画能够及时地提示用户屏幕所发 ...
- 用 Swift 制作一个漂亮的汉堡按钮过渡动画
汉堡按钮在界面设计中已经是老生常谈了,但是当我在dribbble看到这个漂亮的过渡动画时,我决定试试用代码实现它. 这是 CreativeDash team 的原型图: 你可能已经注意到了,汉堡顶 ...
- android 5.0 -- Activity 过渡动画
android 5.0 提供3种过渡动画: 进入 退出 进入退出包括如下效果: explode 分解:屏幕中间进出 slide 滑动:屏幕边缘进出 fade 淡出:改变透明度来添加或者移除视图 共享 ...
- 属性动画和Activity、Fragment过渡动画等
主题是关于动画的,但是不是什么动画的内容都包括.先泛泛的介绍一下,然后详细的介绍一下翻代码找见的一个好玩的动画的使用.以下的内容包括Android 3和Android 3.1等引入的API,在使用中请 ...
- VUE笔记 - 列表过渡动画 v-enter, v-leave-to | v-enter-active, v-leave-active | v-move
本例要结合过渡动画四个过程的示意图一起理解. https://cn.vuejs.org/v2/guide/transitions.html 疑问: v-for="(item,i) in li ...
随机推荐
- Centos7开机启动自己的脚本的方法
在百度上可以找到好几种Linux开机启动各种服务的方法,在这里我写的是自己喜欢的方式. 博主是一个不怎么记事的人,有些配置在系统的目录下,配置了一次后就忘了,再也不想去系统的目录下找各种奇奇怪怪的目录 ...
- 【摘】Oracle执行计划不走索引的原因总结
感谢原博主 http://soft.chinabyte.com/database/364/12471864.shtml 在Oracle数据库操作中,为什么有时一个表的某个字段明明有索引,当观察一些语的 ...
- SLES Install
SUSE Linux Enterprise Server 12-SP3:zypper in -t patch SUSE-SLE-SERVER-12-SP3-2017-2036=1 To bring y ...
- mysql数据库的理解
1.索引结构原理: 普通的Btree(binary search tree)就是二叉树,如下图 B+ Tree索引类型则是二叉树的升级版,每个节点存的是 <num ,最后存排序的ROWID Ha ...
- php中上传图片,原生代码
一.实现图片上传方法一 html的写法: <form action="handle.php" name="form" method="post& ...
- Python全栈开发记录_第七篇(模块_time_datetime_random_os_sys_hashlib_logging_configparser_re)
这一篇主要是学习python里面的模块,篇幅可能会比较长 模块的概念:在Python中,一个.py文件就称之为一个模块(Module). 模块一共三种: python标准库 第三方模块 应用程序自定义 ...
- LeetCode1-5题
1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个 ...
- 从零开始学习python:demo2.5
for 循环语句 1.单个for循环: s1 = 'Python'for s2 in s1: print(s2) ------------------------- Python ------- ...
- C# 反射,动态类,动态方法
1.动态类名,固定方法名,例如.调用不同类下边的GetById()方法: //项目需要引用Miscorsoft.CSharp类库,否则会报错:找不到编译动态表达式所需的一个或者多个类型.//引用这两个 ...
- scrapy-middlewares
1.scrapy中间件 下载中间件Downloader Middlewares 下载器中间件处理请求与响应,对应两个方法 process_request(self, request, spider) ...