自己在写一些样式的时候,遇到的一些问题,顺手就记下了,多总结。

1. css 图片间隙问题:

解决方案:

法宝一:定义图片img标签vertical-align:bottom,vertical-align:middle,vertical-align:top。
img{vertical-align:bottom;}

法宝二:定义容器里的字体大小为0。

div {
font-size:0
}

据说原因:
图片文字等inline元素默认是和父级元素的baseline对齐的,而baseline又和父级底边有一定距离(这个距离和 font-size,font-family 相关),所以设置 vertical-align:top/bottom/text-top/text-bottom 都可以避免这种情况出现。而且不光li,其他的block元素中包含img也会有这个现象。

2.元素垂直居中的若干种方法:

(1)父元素的dispaly:table, 然后自身的displaytable-cell,这样的话,自己可以利用垂直属性:vertical-align:middle.

(2)采用绝对定位的方式position:absolute,当然是对于其父节点。设置自身高度,top为50%,此时的水平线在顶部,通过设置margin-top为一半的高度就行了。

(3)对于固定宽和高的块级元素就比较简单,直接绝对定位,然后设置top,right,bottom,left为0,同时设置margin:auto就行了。

(4)对于容器内的单行文本垂直居中,只需设置其height = line-height就可以了。

(5)还有一种不要轻易尝试,增加个div父元素,float:left,margin-bottom:-一半height,height:50%。自身position:relative,clear:both.

3.flex布局

容器有的属性
可以参考:https://github.com/xingbofeng/css-grid-flex

.box{display:flex,//行内元素 display:inline-flexflex-direction: row (default)| row-reverse | column | column-reverse;//定义排列方向flex-wrap: nowrap(default) | wrap | wrap-reverse;//定义是否可以换行flex-flow:flex-flow: <‘flex-direction’> || <‘flex-wrap’>;justify-content: flex-start | flex-end | center | space-between | space-around;//主轴的对其方式// 左对齐,右对齐,居中对齐,两侧对其中间填充,两边对其,四周填充align-items: flex-start | flex-end | center | baseline | stretch;//竖轴对其方式,基线对其,拉伸对其align-content: flex-start | flex-end | center | space-between | space-around | stretch;
//一行放不下是,多行轴线的对其方式
}

项目有的属性

.item {order: <integer>;//排列顺序,越小排在越前面,默认为零flex-grow: <number>; /* default 0 */ 缩放比例,设置百分比可以显示多行,也很好用flex-shrink:<number>; /* default 1 */  缩放比例,如果为零,表示不缩放。flex-basis: <length> | auto; /* default auto */ 占据的空间大小,可以是固定大小flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]align-self: auto | flex-start | flex-end | center | baseline | stretch;//纵轴上单个项目的对其方式,默认继承align-items}

常用的应用场景

(1)水平垂直居中

设置父元素的align-items:center(垂直居中),justify-content:center(水平居中)就行了。

<div class="box"><div class="content">我是子元素,我要垂直居中</div>
</div>.box {display: flex;align-items: center;justify-content: center;height: 500px;width: 500px;background-color: green;}.content {height: 200px;width: 200px;background-color: yellow;line-height: 200px;text-align: center;}

(2)圣杯布局

<div class="box"><header>header</header><div class="content"><main>main</main><nav>nav</nav><aside>aside</aside></div><footer>footer</footer>
</div>.box {display: flex;flex-direction: column;width: 100%;height: 500px;background-color: yellow;text-align: center;font-size: 30px;
}
header, footer {flex: 0 0 80px;line-height: 80px;
}
header {background-color: pink;
}
footer {background-color: gray;
}
.content {display: flex;flex: 1;
}
nav {order: -1;background-color: blue;flex: 0 0 80px;
}
aside {background-color: green;flex: 0 0 80px;
}
main {flex: 1;
}

(3)响应式布局

这是一道来自百度前端技术学院-task10:Flexbox 布局练习的习题

<div class="box"><div class="box1"></div><div class="box2"></div><div class="box3"></div><div class="box4"></div>
</div>
.box div{width: 150px;padding: 20px;
}
.box1 {height: 120px;background-color: red;
}
.box2 {height: 100px;background-color: blue;
}
.box3 {height: 40px;background-color: pink;
}
.box4 {height: 200px;background-color: yellow;
}
@media (min-width: 640px) {.box {display: flex;flex-direction: row;justify-content: space-between;align-items: center;}
}
@media (max-width: 640px) {.box {display: flex;flex-direction: row;align-items: flex-start;justify-content: space-between;flex-wrap: wrap;}.box4 {order: -1;}
}

其他的一些应用(固定在底部):http://azq.space/blog/flex/

一些常用的清除浮动

如果有一个DIV作为外部容器,内部的元素如果设置了float样式,则外部的容器DIV因为内部元素float脱离文档流,导致不能被撑开。这个时候我们可以用clearfix清除浮动

  • 骨灰级的:
.clear{clear:both;height:0;overflow:hidden;}

上诉办法是在需要清除浮动的后面加个div.clear,最大缺陷就是改变了html结构,虽然只是加个div。

  • 推荐的 伪元素
.clearfix:after{content:"";display:block;height:0;clear:both;visibility:hidden
}
  • 很拉轰的浮动闭合办法:
.clearfix{overflow:auto;_height:1%}

或者

.clearfix{overflow:auto;_zoom:1}

css3布局的若干笔记总结相关推荐

  1. 2017-1-11 css3布局

    2017-1-11 css3布局 css 布局 多列布局 columns:column-width||coumn-count; column-width定义每列的宽度 coumn-count定义列数 ...

  2. html5+css3布局尝试

    今日刚学习了html5+css3布局入门,下面将学习的内容记录如下: 一.预期目标 实现一个博客的显示布局,如图: 二.使用html5编写网页结构,代码容易理解: <!DOCTYPE html& ...

  3. CSS3: The missing manual 《css3秘笈》笔记+布局、设计优秀资源整理

    最近一直在搞css,也没回学校,希望别把Js和算法的东西统统忘掉了...然后一直在实习,感觉还可以吧,就是一直捞不着有技术含量的活儿干,有时候挺心塞的. 长话短说,今天的任务是看完<css3: ...

  4. 响应式布局Bootstrap--学习笔记

    文章目录 一.响应式开发 二. Bootstrap前端开发框架 三.Bootstrap 栅格系统 四.移动端布局总结 一.响应式开发 1.1 响应式开发原理 就是使用媒体查询针对不同宽度的设备进行布局 ...

  5. 响应式Web设计:HTML5和CSS3实战(读书笔记)

    视口:浏览器窗口内的内容区域,不包含工具栏,标签栏.网页实际显示. 屏幕尺寸:设备物理显示区域 各种宽度和高度a.可视区的真实宽度和高度document.documentElement.clientW ...

  6. Flex 3 布局容器学习笔记

    赖勇浩( http://laiyonghao.com ) 国庆期间,做了不少基于 flex 的开发工作,对 flex 的布局容器有了进一步深入的理解,也找到不少非常棒的文章,分享到这里方便一下大家. ...

  7. HTML5+CSS3 非常全的笔记

    文章目录 HTML5 vsco的使用 常用标签 图像标签 超链接标签 锚点链接 特殊字符 表格标签 列表标签 表单标签 实战(注册页面) CSS3 书写规范 css选择器 基础选择器 标签选择器 类选 ...

  8. CSS3 快速入门教程 -笔记【狂神说Java】

    文章目录 1.CSS概述 1.1.什么是CSS 1.2.发展历程 1.3.快速入门 1.4.CSS的三种导入方式 2.选择器 2.1.基本选择器 2.2.层次选择器 2.3.结构伪类选择器 2.4.属 ...

  9. CSS/CSS3语法新特性笔记

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

最新文章

  1. Linux IO多路复用之Select简史
  2. SAP WORK FLOW
  3. PHP获取重定向URL的几种方法
  4. eclipse xml文件中按没有提示
  5. python循环练习_Python循环练习
  6. android 获取当前输入法,关于获取安卓手机系统输入法和设置输入法
  7. 改进我个人知识管理手段
  8. 2020-12-05
  9. 电厂运维的cis数据_浅析电力企业信息系统运维综合监管平台设计-
  10. Windows10(64位)下安装MySql5.7
  11. 条形码扫描模块与单片机的关系是如何呢?
  12. 《Head First Java》| 1 进入Java 的世界
  13. 为什么摇滚的人害羞_并非每个人都需要成为摇滚明星
  14. 艾司博讯:拼多多判断正品的标准是什么
  15. 电商客服售前售后话术培训资料合集(共150份)
  16. 城市公交出行管理查询系统
  17. Delphi历史版本介绍(二)从Delphi8到DelphiXE3
  18. VMware注册问题
  19. HTML5实现立方体及透视效果
  20. 关于@yahoo.cn

热门文章

  1. 用libpcap分析CAIDA的网络流量文件的猝发性
  2. 用unity 做一个转盘游戏
  3. win2012 加域_Windows Server 2012 域设置及客户端加入
  4. 修改 Docker 镜像默认存储位置的方法
  5. 《你一学就会的-思维大图》读书笔记
  6. 郭炜-C语言程序设计-程序设计与算法(一)-第一周
  7. 论文阅读:Personalizing Dialogue Agents via Meta-Learning
  8. 【状语从句练习题】分词作状语
  9. android json解析优秀文章
  10. Day66 Web开发7 旅游详情页面