CSS布局那点事儿
布局
最开始老的一代网站开发,布局都是通过表格实现的。
这样可以形成规整的网格布局,但是也会带来一定的复杂性。比如想要新增某个页面元素,就有可能要改动整个表格,添加很多无用的行或者列。
后来,衍生出不少的CSS框架,他们屏蔽了底层的css语法,只需要按照特定的使用方式就能实现网格布局。这样对于开发者来说,好处自然是方便了;但是也带来了一定的麻烦,比如网格如果不符合用户的应用场景,需要自定义扩展,这就麻烦了;再比如作出的网站不易调试;网站需要引入额外的文件等等。总的来说,还是利大于弊吧,不然bootstrap等等也不会现在火成这样。
CSS布局
网上有很多关于布局的文章,什么双飞翼啊等等。
这里先从最原始的来介绍。考虑到屏幕的宽度不同,有可能造成网页的横向拉伸,为了避免一样过于长,从而导致难于阅读,因此一般的类似博客的网站都会把宽度设置为一个固定的值。当屏幕的宽度拉伸时,也不会改变页面的宽度:
设置的方式大致如下:
width: 920px;
margin: 0 auto;/*水平居中*/
text-align: left;
如果是左右布局,则会考虑把页面分成两个部分。
一个部分向左浮动,一个部分向右浮动。为什么这样呢?
这是因为如果全部采用向左浮动,如果主体部分由文本换行等,由于像素的偏差可能导致最右边的文本框挤出屏幕,导致无法阅读。因此一个向左,一个向右,中间留有一定的隔离区(空白的地方),当有挤出的部分也会显示在隔离区的部分,而不会影响阅读。
.content .primary {
width: 72.82%;
height: 400px;
background-color: yellow;
float: right;
display: inline;
}
.content .secondary {
width: 25%;
height: 400px;
background-color: blue;
float: left;
display: inline;
}
如果是三列的布局,则可以考虑先分成两部分。某一个部分再分成两部分,通过向左向右浮动的方式显示。
巧用min-width和max-width
min-width
和max-width
其实是很长用的。
比如在做响应式web时,考虑到浏览器的伸缩,想要网站也随之改变,那么就会设置宽度高度为一定的百分比,或者通过响应式的语法实现。这时,如果文本内容缩小的很小,宽度很窄可能会影响阅读,因此需要把宽度设置为一个最小值。只有屏幕宽度大于一定的值时,页面才会随之改变。类似的,避免屏幕过大网站拉伸变形,也可以设置一个最大的宽度值。
这个属性对于图片和div都有很好的效果。
最新文章
- float,double和decimal类型
- JSP Servlet的区别
- localhost访问错误Forbidden You don't have permission to access / on this server.解决办法(亲测)
- js实现图片加载特效(从左到右,百叶窗,从中间到两边)
- Django基础,Day10 - template 模板引擎与路径设置
- Android之记住密码与自动登陆实现
- Asp.Net生命周期
- A Tour of Go Variables
- 【HDU 2014 Multi-University Training Contest 1 1002】/【HDU 4862】Jump
- android:在ViewPager中使用Button
- git 在linux下服务端搭建
- WIFI的AP/Sta模式简单介绍
- 如何访问https的网站?-【httpclient】
- 【LeetCode每天一题】Palindrome Number( 回文数字)
- EmguCV Image类中的函数(二)使用MorphologyEx进行更多的变换
- js 箭头函数
- spring aop实现日志收集
- 何时开始phonics学习及配套阅读训练zz
- 使用git时出现Please make sure you have the correct access rights and the repository exists.问题已解决。
- (字符串 KMP)Blue Jeans -- POJ -- 3080:
热门文章
- hdu 2018 母牛的故事(简单dp)
- LSM Tree 学习笔记——本质是将随机的写放在内存里形成有序的小memtable,然后定期合并成大的table flush到磁盘
- python--17个新手常见Python运行时错误
- Python基础-random模块及随机生成11位手机号
- L99
- codeforces 655D D. Robot Rapping Results Report(拓扑排序+拓扑序记录)
- Struts2 - 文件的上传和下载
- ffmpeg解码RTSP/TCP视频流H.264(QT界面显示视频画面)
- linux命令学习(8):mv命令
- DOM基础知识整理