《学习CSS布局》学习笔记

时间:2022-11-13 08:56:01

近几天做了一个小的企业展示网站。虽然页面是在模板的基础上改的,但改的多了不熟悉CSS也很麻烦。正好我看到了学习CSS布局这个网站,于是补习了一下CSS知识。

CSS的显示

CSS的元素分为两类:块级元素和行内元素。

  • 一个块级元素会新开始一行并且尽可能撑满容器。常见的块级元素包括divpform,以及HTML5中新加入的headerfootersection等。
  • 行内元素可以显示在段落内而不打乱段落的布局。常见的行内元素包括spana等。

display属性就是控制元素的表现形式,它的值包括inlineblocknone等。

none通常用于在不删除元素的情况下隐藏元素,但使用none不会保留元素本该显示的空间。

inline-block用于将块级元素显示在行内。

控制元素显示的属性还有外边距、内边距、边框、上下左右的边等。于是就讲到了元素的盒模型。

盒模型

上面的这些属性使得元素的显示就像一个盒子一样。

但是我们指定了它的长和宽却并不一定是它最终展示出来的样子。因为元素的边框和内边距会撑开元素

通常的做法是在设置长和宽是提前减去内边距和边框的宽度。另一种做法是使用box-sizing这个属性,此时内边距和边框不再会增加元素的宽度。

.box-sizing {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box
}

position

为了实现更复杂的布局,需要对元素进行定位。position这个元素有以下几个属性:

  • static:默认值。不会进行特殊的定位。
  • relative:相对定位。对其设置topbottomleftright等属性可以使其偏离其正常位置
  • fixed:固定定位。相对于浏览器的视窗而言。通常用于摆放不随页面滚动的元素。如固定的页首和页脚、固定的导航栏等。
  • absolute:绝对定位。相对于元素的父元素(或者如果没有父元素,就相对于文档的body元素)进行定位。

浮动与清除浮动

使用上面的position属性已经可以设计出复杂的布局了。但是对于并排显示或者环绕的效果,实现起来还是不够简洁。

使用浮动float可以比较简便的实现以上布局。

使用了浮动属性的元素会脱离标准流(标准流就是块级元素独占一行,从上往下依次排布),但其他的元素仍处于标准流中,这时可能浮动的元素覆盖了其他一些元素。

解决方法是使用清除浮动clear。注意clear作用的对象是自身而不是其它浮动的元素。

如,clear: left表示,不允许左边有浮动元素,所以此元素就会下移,避免被浮动元素遮挡。

浮动的元素还可能出现的问题是溢出。我们可以使用overflow:auto使得父元素自动调整大小。

overflow包括以下的值:

  • visible:默认值。内容不会被修剪,会呈现在元素框之外。
  • hidden:内容会被修剪,并且其余内容是不可见的。
  • scroll:内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
  • auto:如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。

inline-block

有了float可以更方便的实现并排显示多个块级元素,不过还有更方便的一种方法。

前面提到的display中的inline-block可以将块级元素显示在行内。不过,你需要指定每一列的宽度。如:

.box {
display: inline-block;
width: 200px;
height: 100px;
margin: 1em;
}

媒体查询

为了实现响应式布局,可以使用媒体查询,针对不同的浏览器和设备“响应”不同的显示效果。如:

@media screen and (min-width:600px) {
nav {
float: left;
width: 25%;
}
section {
margin-left: 25%;
}
}
@media screen and (max-width:599px) {
nav li {
display: inline;
}
}

《学习CSS布局》学习笔记的更多相关文章

  1. “学习CSS布局” 笔记

    学习网址:http://zh.learnlayout.com/no-layout.html 本文仅为学习笔记,内容非原创. position 默认值:static 没有添加额外属性的relative和 ...

  2. css布局学习笔记之position属性

    position属性用于定位元素,它的几个值分别如下: 1,static static 是默认值.任意 position: static; 的元素不会被特殊的定位.一个 static 元素表示它不会被 ...

  3. CSS布局学习笔记之position

    CSS知识点 之 position布局 前段时间被同学怂恿,参加了百度前端技术学院的一个小培训,第一个阶段下来学到不少东西.课程的第一个阶段主要是HTML5 和 CSS 基础知识的一个小培训,给出的一 ...

  4. css布局学习笔记之box-sizing

    当你设置了元素的宽度,实际展现的元素却能够超出你的设置:因为元素的边框和内边距会撑开元素. .div{ width: 500px; margin: 20px auto; padding: 50px; ...

  5. css布局学习笔记之max-width

    设置块级元素的 width 可以阻止它从左到右撑满容器.然后你就可以设置左右外边距为 auto 来使其水平居中.元素会占据你所指定的宽度,然后剩余的宽度会一分为二成为左右外边距. div{ width ...

  6. CSS布局学习(三) - position属性定义及解释(官网直译)

    static ①元素的位置是在文档正常布局流中的位置. ②设置top right bottom left与z-index无效. ③在未指定position时,static是默认值 以下例子进行说明: ...

  7. CSS布局学习(二) - flex属性

    flex属性 定义 flex布局包括最外层的容器和内部的元素,flex属性是内部元素属性.flex属性是flex-grow, flex-shrink, flex-basis三个属性的简写 flex-g ...

  8. 学习CSS布局 - dispaly属性

    "display"属性 display 是CSS中最重要的用于控制布局的属性. 每个元素都有一个默认的 display 值,这与元素的类型有关. 对于大多数元素它们的默认值通常是  ...

  9. 【网页布局基础】css布局学习总结

    三种定位机制 1.标准文档流:从上到下,从左到右输出文档内容 2.浮动 3.绝对定位 需要注意的是块级元素如div p ul 等 行级元素如span strong img input等 块级元素与行级 ...

随机推荐

  1. Install Sublime Text 3

    $ sudo add-apt-repository ppa:webupd8team/sublime-text-3 $ sudo apt-get update $ sudo apt-get instal ...

  2. 转:Java架构师与开发者提高效率的10个工具

    原文来自于:http://www.importnew.com/14624.html Java受到全球百万计开发者的追捧,已经演变为一门出色的编程语言.最终,这门语言随着技术的变化,不断的被改善以迎合变 ...

  3. iosOC不可变字典和可变字典

    //key 和 value 都属于(id)对象类型 //key常用字符串NSString来表示 //存储数值型 一般可用 NSString //int  age ->@(age) //  [di ...

  4. C++函数调用的反汇编过程及Thunk应用

    x86汇编基础知识 1. 汇编常用寄存器 esp,(Extended stack pointer)栈顶指针.因为x86的栈内存是向下扩展的,因此当push入栈时,esp–.pop出栈时,esp++.e ...

  5. python虚拟环境的安装配置

    安装 使用pip安装     pip install virtualenv 因为已经安装过了,所以显示这样 在这里我想在这里推荐大家以后再安装类库时可以用豆瓣源来安装,速度很快,因为在国内访问 官方p ...

  6. Chrome调试折腾记_(1)调试控制中心快捷键详解!!!

    转载:http://blog.csdn.net/crper/article/details/48098625 大多浏览器的调试功能的启用快捷键都一致-按下F12;还是熟悉的味道;  或者直接 Ctrl ...

  7. centos7更改默认的python版本,安装python3.6.4

    1.首先查看默认系统版本:显示为2.7.5 2.我们在root下创建一个python的文件夹用来存放我们下载的python安装包: 3.然后使用wget命令下载安装包: wget  https://w ...

  8. ExportHandler.ashx

    using KYZWeb.Common;using Liger.Data;//using Microsoft.Office.Interop.Excel;using System;using Syste ...

  9. 【译】第18节---数据注解-ForeignKey

    原文:http://www.entityframeworktutorial.net/code-first/foreignkey-dataannotations-attribute-in-code-fi ...

  10. c++11 强类型枚举

    c++11 强类型枚举 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #inclu ...