css基础篇 06 定位 定位案例 网页布局总结 元素的显示和隐藏

08 定位 定位案例 网页布局总结 元素的显示和隐藏

定位

种类

静态定位

不定位,满足标准流的规定
和标准流的元素完全一致,可以认为其没有定位

例子
<link rel="stylesheet" type="text/css" href="./定位.css"/>
<div id="static">
    <div class="example">
        静态定位
    </div>
</div>

定位.css

.example{
	background-color: aqua;
	width: 100px;
	height: 50px;
	line-height: 50px;
	text-align: center;
	margin: 1px;
}
#static {
	position: static;
}
相对定位

边偏移是相对于本身的位置的
不脱离标准流
会保留原来的位置
可以单独使用

特点
  • 1.它是相对于自己原来的位置来移动的(移动位置的时候参照点是自己原来的位置)。
  • 2.原来在标准流的位置继续占有,后面的盒子仍然以标准流的方式对待它。
    因此,相对定位并没有脱标。它最典型的应用是给绝对定位当父标签。
例子
<link rel="stylesheet" type="text/css" href="./定位.css"/>
<div id="relative">
    <div class="example">
        相对定位
    </div>
</div>

定位.css

.example{
	background-color: aqua;
	width: 100px;
	height: 50px;
	line-height: 50px;
	text-align: center;
	margin: 1px;
}
#relative{
	position: relative;
	top: 10px;
	left: 10px;
}
绝对定位

边偏移是相对于它有定位的祖先元素来说的(如果他没有有定位的祖先元素,则以DOM为准定位)
脱离标准流
不会保留原来的位置
一般情况下需要和有定位的祖先元素搭配使用(一般子绝父相)

特点
  • 如果没有祖先元素或者祖先元素没有定位,则以浏览器为基准定位(Document 文档)。
  • 如果祖先元素有定位(相对、绝对、固定定位),则以最近一级的有定位祖先元素为参考点移动位置。
  • 绝对定位不再占有原先的位置。所以绝对定位是脱离标准流的。(脱标)
例子
<link rel="stylesheet" type="text/css" href="./定位.css"/>
<div id="absolute">
    <div class="example">
        绝对定位
    </div>
</div>

定位.css

.example{
	background-color: aqua;
	width: 100px;
	height: 50px;
	line-height: 50px;
	text-align: center;
	margin: 1px;
}
#absolute{
	position: absolute;
	top: 10px;
	left: 110px;
}
固定定位

边偏移是相对于浏览器的可视窗口来说的
脱离标准流
不会保留原来的位置
可以单独使用

例子
<link rel="stylesheet" type="text/css" href="./定位.css"/>
<div id="fixed">
    <div class="example">
        固定定位
    </div>
</div>

定位.css

.example{
	background-color: aqua;
	width: 100px;
	height: 50px;
	line-height: 50px;
	text-align: center;
	margin: 1px;
}
#fixed {
	position: fixed;
	top: 10px;
	right: 10px;
}
粘性定位

边偏移是相对于浏览器的可视窗口来说的(具体作用建议运行代码,语言上有点难以描述)
不脱离标准流
会保留原来的位置
兼容性较低

例子
<link rel="stylesheet" type="text/css" href="./定位.css"/>
<div id="sticky">
    <div class="example">
        粘性定位
    </div>
</div>

定位.css

.example{
	background-color: aqua;
	width: 100px;
	height: 50px;
	line-height: 50px;
	text-align: center;
	margin: 1px;
}
#sticky {
	position: sticky;
	top: 10px;
	right: 10px;
}

总结

定位总结

定位案例

在07温习的学成在线项目中加入定位的元素

加入前

新增后

新增后

新增后

hot/new标签

加入前

index.html

<div class="box-content-li">
    <div class="box-content-li-image">
        <a href="#"><img src="images/图层133.png" ></a>
    </div>
    <div class="box-content-li-text">
        Think PHP 5.0 博客系统实战项目演练  
        <div class="box-content-li-text-supplement">
            <div class="box-content-li-text-level">
                高级      	
            </div>
            <div class="box-content-li-text-people">
                &nbsp;·&nbsp;1125人在学习      
            </div>
        </div>
    </div>
</div>
<div class="box-content-li">
    <div class="box-content-li-image">
        <a href="#"><img src="images/图层135.png" ></a>
    </div>
    <div class="box-content-li-text">
        Android 网络图片加载框架详解 
        <div class="box-content-li-text-supplement">
            <div class="box-content-li-text-level">
                高级      	
            </div>
            <div class="box-content-li-text-people">
                &nbsp;·&nbsp;1125人在学习      
            </div>
        </div>
    </div>
</div>

style .css

.box-content-li{
	float:left;
	width: 226.8px;
	height: 270px;
	margin:15px 8.5px 0px 8.5px;
	background-color: white;
	box-shadow: 5px 5px 10px -4px rgba(0,0,0,.3); 
}
新增后

index.html

<div class="box-content-li">
    <div class="box-content-li-tip">
        <img src="images/hot.png" >
    </div>
    <div class="box-content-li-image">
        <a href="#"><img src="images/图层133.png" ></a>
    </div>
    <div class="box-content-li-text">
        Think PHP 5.0 博客系统实战项目演练  
        <div class="box-content-li-text-supplement">
            <div class="box-content-li-text-level">
                高级      	
            </div>
            <div class="box-content-li-text-people">
                &nbsp;·&nbsp;1125人在学习      
            </div>
        </div>
    </div>
</div>
<div class="box-content-li">
    <div class="box-content-li-tip">
        <img src="images/new.png" >
    </div>
    <div class="box-content-li-image">
        <a href="#"><img src="images/图层135.png" ></a>
    </div>
    <div class="box-content-li-text">
        Android 网络图片加载框架详解 
        <div class="box-content-li-text-supplement">
            <div class="box-content-li-text-level">
                高级      	
            </div>
            <div class="box-content-li-text-people">
                &nbsp;·&nbsp;1125人在学习      
            </div>
        </div>
    </div>
</div>

style .css

.box-content-li{
	position: relative;
	float:left;
	width: 226.8px;
	height: 270px;
	margin:15px 8.5px 0px 8.5px;
	background-color: white;
	box-shadow: 5px 5px 10px -4px rgba(0,0,0,.3); 
}
.box-content-li-tip {
	width: 40px;
	height: 25px;
	position: absolute;
	top: 4px;
	right: -4px;
}

侧边栏的添加

加入前

index.html

<div class="box">
    ...
</div>
新增后

index.html

<div class="box">
    <div class="box-sidebar">
        <div class="box-sidebar-li">
            <a href="#">编程入门</a>
        </div>
        <div class="box-sidebar-li">
            <a href="#">数据分析师</a>
        </div>
        <div class="box-sidebar-li">
            <a href="#">机器学习工程师</a>
        </div>
        <div class="box-sidebar-li">
            <a href="#">前端开发工程师</a>
        </div>
        <div class="box-sidebar-li">
            <a href="#">人工智能工程师</a>
        </div>
        <div class="box-sidebar-li">
            <a href="#"> 全栈工程师</a>
        </div>
        <div class="box-sidebar-li">
            <a href="#">iOS工程师</a>
        </div>
        <div class="box-sidebar-li">
            <a href="#">VR开发者</a>
        </div>
        <div class="box-sidebar-li">
            <a href="#">深度学习</a>
        </div>
        <div class="box-sidebar-li">
            <a href="#">商业预测分析师</a>
        </div>
        <div class="box-sidebar-li">
            <a href="#">Android开发工程师</a>
        </div>
    </div>
    ...
</div>

style .css

.box-sidebar{
	position: fixed;
	right: 50%;
	margin-right: 625px;
	top: 50%;
	margin-top: -212.5px;
	z-index:5;
	width: 150px;
	height: 385px;
	padding:20px 17.5px;
	background-color: white;
	font-size: 14px;
	line-height: 35px;
	color: rgb(66,66,66);
}

.box-sidebar-li {
	width: 150px;
	height: 35px;
	padding-left: 15px;	
}
.box-sidebar-li>a:hover{
	color: rgb(0,164,255);
}

网页布局总结

标准流

可以让盒子上下排列或者左右排列,垂直的块级盒子显示就用标准流布局

浮动

可以让多个块级元素一行显示或者左右对齐盒子,多个块级盒子水平显示就用浮动布局

定位

定位最大的特点是有层叠的概念,就是可以让多个盒子前后叠压来显示。如果元素自由在某个盒子内移动就用定位布局。

元素的显示和隐藏

种类

display

display: none 隐藏对象
display 隐藏元素后,不再占有原来的位置。
后面应用及其广泛,搭配 JS 可以做很多的网页特效。实际开发场景

例子
<link rel="stylesheet" type="text/css" href="./元素的显示与隐藏.css"/>
<div id="display">
    display
</div>
<div>
    div
</div>

元素的显示与隐藏.css

*{
	margin: 0px;
	padding:0px;
}
div{
	width: 100px;
	height: 100px;
	background-color: pink;
}

#display{
	display:block;
	background-color: red;
	
}
#display:hover{
	display: none;
}
visibility

visibility : hidden; 隐藏对象
visibility 隐藏元素后,继续占有原来的位置

例子
<link rel="stylesheet" type="text/css" href="./元素的显示与隐藏.css"/>
<div id="visibility">
    visibility
</div>
<div>
    div
</div>

元素的显示与隐藏.css

*{
	margin: 0px;
	padding:0px;
}
div{
	width: 100px;
	height: 100px;
	background-color: pink;
}
#visibility {
	visibility:visible ;
	background-color: orange;
}
#visibility:hover{
	visibility:hidden;
}
display和visibility总结
  • 如果隐藏元素想要原来位置, 就用 visibility :hidden

  • 如果隐藏元素不想要原来位置, 就用 display :none (用处更多 重点)

overflow
属性
visible

当内容过多,溢出元素方块的内容也会显示出来

hidden

当内容过多,溢出元素方块的内容不会显示出来

scroll

会有滑动条

auto

当内容过多,会有滑动条

例子
<link rel="stylesheet" type="text/css" href="./元素的显示与隐藏.css"/>
<div id="overflow">
    <div id="overflow-visible" class="overflow">
        overflow-visible<br/>
        overflow-visible<br/>
        overflow-visible<br/>
        overflow-visible<br/>
        overflow-visible
    </div>
    <div id="overflow-hidden" class="overflow">
        overflow-hidden<br/>
        overflow-hidden<br/>
        overflow-hidden<br/>
        overflow-hidden<br/>
        overflow-hidden
    </div>
    <div id="overflow-scroll" class="overflow">
        overflow-scroll<br/>
        overflow-scroll<br/>
        overflow-scroll<br/>
        overflow-scroll<br/>
        overflow-scroll
    </div>
    <div id="overflow-auto" class="overflow">
        overflow-auto<br/>
        overflow-auto<br/>
        overflow-auto<br/>
        overflow-auto<br/>
        overflow-auto
    </div>
    <div id="overflow-auto" class="overflow">
        overflow-auto<br/>
        overflow-auto
    </div>
</div>
<div>
    div
</div>

元素的显示与隐藏.css

*{
	margin: 0px;
	padding:0px;
}
div{
	width: 100px;
	height: 100px;
	background-color: pink;
}
#overflow{
	width: 500px;
	height: 60px;
}
.overflow{
	float: left;
	height: 100px;
	background-color: yellow;
}
#overflow-visible{
	overflow: visible;
}
#overflow-hidden{
	overflow: hidden;
}
#overflow-scroll{
	overflow: scroll;
}
#overflow-auto{
	overflow: auto;
}

总结

元素的隐藏与显示总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值