浮动与定位的小demo

浮动与定位的小demo

浮动元素
浮动元素(向左或向右)一直遇到父元素(左上角或右上角)或另一个浮动元素时停止浮动,如果父元素有padding值,浮动元素无法跨越padding。div是块元素,块元素独占一行,浮动元素默认会将元素转为行内块元素,
注意: 我们给a标签这样的行内元素设置float属性,默认也会转为行内块元素。
当浮动影响了页面布局时,我们需要清除浮动。清除浮动并不是没有浮动了,而是清除浮动给自己带来的影响,使自己不受它的影响。
方法:
1、给父元素overflow:hidden
2、在父元素中追加一个空元素(子元素)并设置它的clear:both。
3、直接给父元素宽高。
4、伪元素方法清除浮动

 .divfather:after {
        content: ".";
        display: block;
        height: 0;
        clear: both;
        visibility: hidden
      }

定位
定位元素是以离它最近的设置了定位属性(position值只要不是static就行,并非一定是relative)的父级元素为参考的,如果它的父级元素全都没有设置定位属性,则以浏览器可视窗口为参照。

小demo(图片来自酷狗)
代码:


		<!-- 精选歌单 -->
		<div class="selectSongList">
			<!--标题 start-->
			<div class="itemTitle">
				<h3></h3>
				<a href="" class="more">更多</a>
			</div>
			<!--标题 end-->
			<!--盒子 start-->
			<div class="itemContent">
				<!--大盒子 start-->
				<div class="cpt cptBig">
					<p class="cptT">
						<span class="icon icon-select_icon"></span>
						<span class="num">2.8万</span>
					</p>
					<img src="img/20191126183051151264.jpg" width="325" height="325" />
					<!--遮罩层 start-->
					<div class="Cover">
						<a href=""></a>
						<!--播放按钮-->
						<a href="" class="icon-play"></a>
					</div>
					<!--遮罩层 end-->
					<div class="cptB">
						<p class="songListName">日本厂牌FABTONE嘻哈大赏</p>
						<p class="songListSinger">酷小编</p>
					</div>
				</div>
				<!--大盒子 end-->
				<!--小盒子 start-->
				<div class="cpt cptMid">
					<p class="cptT">
						<span class="icon icon-select_icon"></span>
						<span class="num">38850.5万</span>
					</p>
					<img src="img/20191126152130879826.jpg" width="160" height="160" />
					<div class="Cover">
						<a href=""></a>
						<a href="" class="icon-play icon-play_s"></a>
					</div>
					<div class="cptB">
						<p class="songListName">每周推荐歌曲</p>
						<p class="songListSinger">酷狗号歌单君</p>
					</div>
				</div>
				<!--小盒子 end-->
				<!--小盒子 start-->
				<div class="cpt cptMid">
					<p class="cptT">
						<span class="icon icon-select_icon"></span>
						<span class="num">5.7万</span>
					</p>
					<img src="img/20191120155445282547.jpg" width="160" height="160" />
					<div class="Cover">
						<a href=""></a>
						<a href="" class="icon-play icon-play_s"></a>
					</div>
					<div class="cptB">
						<p class="songListName">欧美乐鉴 | 尤物出没!魔女vs.仙女,你喜欢哪一挂?</p>
						<p class="songListSinger">欧美Ku乐</p>
					</div>
				</div>
				<!--小盒子 end-->
				<!--小盒子 start-->
				<div class="cpt cptMid">
					<p class="cptT">
						<span class="icon icon-select_icon"></span>
						<span class="num">10.1万</span>
					</p>
					<img src="img/20191124114949887023.jpg" width="160" height="160" />
					<div class="Cover">
						<a href=""></a>
						<a href="" class="icon-play icon-play_s"></a>
					</div>
					<div class="cptB">
						<p class="songListName">走自己的路</p>
						<p class="songListSinger">一汽马自达</p>
					</div>
				</div>
				<!--小盒子 end-->

				<!--小盒子 start-->
				<div class="cpt cptMid">
					<p class="cptT">
						<span class="icon icon-select_icon"></span>
						<span class="num">17.9万</span>
					</p>
					<img src="img/20191121174714833766.jpg" width="160" height="160" />
					<div class="Cover">
						<a href=""></a>
						<a href="" class="icon-play icon-play_s"></a>
					</div>
					<div class="cptB">
						<p class="songListName">赋电新生,&#34;e啵&#34;能量创世而来</p>
						<p class="songListSinger">奥迪Q2Le-tron</p>
					</div>
				</div>
				<!--小盒子 end-->
			</div>
			<!--  盒子 end-->
		</div>
		<!-- 精选歌单 -->
* {
	/*清除所有内外边距*/
	padding: 0;
	margin: 0;
}

a {
	/*去掉a标签的下划线*/
	text-decoration: none
}

.selectSongList {
	/*清除浮动的影响*/
	overflow: hidden;
	width: 650px;
	font-size: 13px;
	margin: 20px auto;
}


/*标题 start*/

.itemTitle {
	height: 30px;
	padding-bottom: 30px;
}

.itemTitle {
	/*背景 设置背景的图片 不平铺  位置*/
	background: url(../img/selectlist.jpg) no-repeat 0 0;
}

.itemTitle .more {
	margin-top: 7px;
	color: #999;
	float: right;
}

.itemTitle h3 {
	float: left;
}


/*标题 end*/


/*盒子 start*/

.itemContent {
	width: 660px;
}

.cpt {
	/*左浮动*/
	float: left;
	/*给父级元素设置相对定位*/
	position: relative;
}


/*左边大盒子*/

.selectSongList .cptBig {
	width: 325px;
	height: 325px;
	margin-right: 5px;
	float: left;
}


/*上面的文字*/

.cptT {
	width: 152px;
	height: 30px;
	/*设置行高 使字体上下居中*/
	line-height: 30px;
	/*背景 设置背景的图片 不平铺  位置*/
	background: url(../img/cptTBg.png) no-repeat right center;
	color: #fff;
	/*内容居右对齐*/
	text-align: right;
	padding-right: 8px;
	/*绝对定位 */
	position: absolute;
	top: 0;
	right: 0;
}


/*耳机小图标*/

.icon-select_icon {
	/*把span元素改为行内块元素 可以设置宽高*/
	display: inline-block;
	width: 14px;
	height: 14px;
	background-position: 0 -267px;
	/*相对自己定位*/
	position: relative;
	top: 2px;
	background-image: url(../img/sprite.png);
	margin-right: 10px;
}


/*遮罩层*/

.Cover {
	width: 325px;
	height: 325px;
	background: rgba(0, 0, 0, .3);
	position: absolute;
	top: 0px;
	left: 0px;
	/*隐藏元素*/
	visibility: hidden;
}

.Cover a {
	width: 325px;
	height: 325px;
	display: block;
}

a.icon-play {
	width: 36px;
	height: 36px;
	background-image: url(../img/sprite.png);
	background-position: 0 -401px;
	position: absolute;
	right: 5px;
	bottom: 5px;
	z-index: 2;
}

.cptB {
	width: 144px;
	padding: 6px 8px;
	background: rgba(0, 0, 0, .5);
	font-size: 14px;
	height: 38px;
	position: absolute;
	bottom: 0;
	left: 0;
}

.selectSongList .cptBig .cptB {
	width: 309px;
}


/*下面的文字*/

.songListName,
.songListSinger {
	/*文本不换行*/
	white-space: nowrap;
	/*溢出隐藏*/
	overflow: hidden;
	/*文本的溢出部分用省略号代替*/
	text-overflow: ellipsis;
	line-height: 19px;
	width: 295px;
}

.songListName {
	color: #fff;
}

.songListSinger {
	color: #cfcfcf;
}


/*右边小盒子*/

.cptMid {
	width: 160px;
	height: 160px;
	padding: 0;
	margin: 0 5px 5px 0;
}


/*改变小遮罩层的宽高*/

.cptMid .Cover {
	width: 160px;
	height: 160px;
	background: rgba(0, 0, 0, .3);
}

.cptMid .Cover a {
	width: 160px;
	height: 160px;
}

.cptMid .Cover .icon-play_s {
	width: 36px;
	height: 36px;
}

.selectSongList .cptMid .cptB .songListName,
.selectSongList .cptMid .cptB .songListSinger {
	width: 100px;
}


/*鼠标放上去的显示*/

.icon-play:hover {
	background-position: 0 -360px;
}

.cpt:hover .Cover {
	/*显示*/
	visibility: visible;
}


/*盒子 end*/

效果
在这里插入图片描述

鼠标放上去效果
在这里插入图片描述
在这里插入图片描述

注意 hove是鼠标放上去元素显示的效果,一般不要同级给效果。如果同级给hover,另一个效果出先可能会一闪一闪的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值