1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > html+css基础-1-屏幕居中 双飞翼布局 清除浮动

html+css基础-1-屏幕居中 双飞翼布局 清除浮动

时间:2024-07-31 00:53:21

相关推荐

html+css基础-1-屏幕居中 双飞翼布局 清除浮动

一,屏幕居中

1,利用auto自动填充剩余空间

<!DOCTYPE html><html><head><meta charset="utf-8"><title></title><style type="text/css">div{width: 200px;height: 200px;background-color: red;position: absolute;top: 0;right: 0;bottom: 0;left: 0;margin: auto;}</style></head><body><div></div></body></html>

2,利用transform移动定位

<!DOCTYPE html><html><head><meta charset="utf-8"><title></title><style type="text/css">div{width: 200px;height: 200px;background-color: red;position: absolute;left: 50%;top: 50%;transform: translate(-50%,-50%);}</style></head><body><div></div></body></html>

二,双飞翼布局(两边固定宽度,中间自适应)

1,正常的双飞翼布局,用flex

<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><style type="text/css">*{margin: 0;padding: 0;}.main{display: flex;}.right,.left{background-color: green;width: 200px;}.middle{background-color: red;flex: 1;}</style><body><div class="main"><div class="left">左</div><div class="middle">中</div><div class="right">右</div></div></body></html>

2,要求中部先渲染的,用float加上margin负值移动

<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><style type="text/css">*{margin: 0;padding: 0;}.main>div{float: left;}.contain{width: 100%;}.middle{background-color: red;margin: 0 200px;}.left{background-color: pink;width: 200px;margin-left: -100%;}.right{background-color: yellow;width: 200px;margin-left: -200px;}</style><body><div class="main"><div class="contain"><div class="middle">中</div></div><div class="left">左</div><div class="right">右</div></div></body></html>

先是让三者都左浮动,然后中间元素的子盒子给左右200px的margin.

因为一行不够用,所以现在是被挤到下一行:

再给左边的,让她margin-left移动一个屏幕宽度,右边的移动一个自身宽度,就完成了:

三,清除浮动

1,给父盒子设定高度(高度不会自适应,不推荐)

2,给浮动的同级末尾增加一个块级空盒子,设定样式clear:both

这里的原理是,最后一个盒子不是浮动的,它仍然在文档流中,也就是必须在父元素的边界内,父元素只有增加其高度才能达到此目的。于是,父盒子的高度就被它撑开了。

3,给父盒子增加一个块级伪元素:after

原理和上一个一样

4,给父盒子增加overflow:hidden

这里的原理是,给父盒子增加overflow:hidden就会将父盒子创建成一个BFC,而计算BFC的高度时,浮动元素也参与计算,所以就把父盒子撑开了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。