前端基础篇之 CSS 世界

基本概念

这些基本概念有些可能不易理解但却都很重要,如果看完还是很不理解的话需要自己谷歌或百度,网上关于这些概念的文章不少。

“流”又叫文档流,是 css 的一种基本定位和布局机制。流是 html 的一种抽象概念,暗喻这种排列布局方式好像水流一样自然自动。“流体布局”是 html 默认的布局机制,如你写的 html 不用 css,默认自上而下(块级元素如div)从左到右(内联元素如span)堆砌的布局方式。

块级元素和内联元素

这个大家肯定都知道。

块级元素是指单独撑满一行的元素,如div、ul、li、table、p、h1等元素。这些元素的 display 值默认是block、table、list-item等。

内联元素又叫行内元素,指只占据它对应标签的边框所包含的空间的元素,这些元素如果父元素宽度足够则并排在一行显示的,如span、a、em、i、img、td等。这些元素的 display 值默认是inline、inline-block、inline-table、table-cell等。

实际开发中,我们经常把display计算值为inline inline-block inline-table table-cell的元素叫做内联元素,而把display计算值为block的元素叫做块级元素。

width: auto 和 height: auto

widthheight的默认值都是auto

对于块级元素,流体布局之下width: auto自适应撑满父元素宽度。这里的撑满并不同于width: 100%的固定宽度,而是像水一样能够根据margin不同而自适应父元素的宽度。

对于内联元素,width: auto则呈现出包裹性,即由子元素的宽度决定。

无论内联元素还是块级元素,height: auto都是呈现包裹性,即高度由子级元素撑开。

注意父元素height: auto会导致子元素height: 100%百分比失效。

css 的属性非常有意思,正常流下,如果块级元素的width是个固定值,marginauto,则margin会撑满剩下的空间;如果margin是固定值,widthauto,则width会撑满剩下的空间。这就是流体布局的根本所在。

外在盒子和内在盒子

外在盒子是决定元素排列方式的盒子,即决定盒子具有块级特性还是内联特性的盒子。外在盒子负责结构布局。

内在盒子是决定元素内部一些属性是否生效的盒子。内在盒子负责内容显示。

display: inline-table; 外在盒子就是inline,内在盒子就是table。外在盒子决定了元素要像内联元素一样并排在一排显示,内在盒子则决定了元素可以设置宽高、垂直方向的 margin 等属性。如下图

右侧的 table 和左侧的文字在一行排列(外在盒子 inline 的表现特征),同时有拥有自定义宽度 111px(内在盒子 table 可以设置宽高)。

css 权重和超越!important

曾经有道面试题把我难住了:

// 假设下面样式都作用于同一个节点元素`span`,判断下面哪个样式会生效
body#god div.dad span.son {width: 200px;}
body#god span#test {width: 250px;}

可怜当时做了三年前端的我竟然还不知道 css 有权重

前端基础篇之 CSS 世界相关推荐

  1. 前端基础篇之CSS世界

    小刚老师 基本概念 盒模型四大金刚 好基友`line-height`和`vertical-align` 流的破坏 层叠规则 弹性布局 网格布局 文本控制 元素的显示与隐藏 基本概念 这些基本概念有些可 ...

  2. 前端基础知识总结---CSS篇

    本部分主要是笔者在复习 CSS 相关知识和一些相关面试题时所做的笔记,如果出现错误,希望大家指出! 目录 1.介绍一下标准的 CSS 的盒子模型?低版本 IE 的盒子模型有什么不同的? 2.CSS 选 ...

  3. WEB前端基础(HTML+CSS+JavaScript)(上)最好看最详细的笔记~

    WEB前端基础 当前部分是基于HTML与CSS总结,后续有JavaScript更新~ 文章目录 WEB前端基础 一.HTML概述(阶段1 入门概述) 1.HTML 二.第一个HTML页面 1.HTML ...

  4. 【前端基础1-HTML和CSS】

    前端基础 HTML决定网页的内容: CSS决定网页的美观程度: Javascript决定网页的特效. 1 HTML HTML的英文全称是Hyper Text Markup Language,即超文本标 ...

  5. 前端基础知识点总结CSS篇(问题实例)

    CSS 优化.提高性能的方法有哪些? 多个 css 合并,尽量减少 HTTP 请求 css 雪碧图 抽象提取公共样式,减少代码量 选择器优化嵌套,尽量避免层级过深 (用'>'替换' ') 属性值 ...

  6. 前端基础HTML和css总结

    HTML[Hyper Text Markup Language] 超文本标记语言,不是编程语言 软件架构: 1. C/S: Client/Server 客户端/服务器端 ​ * 在用户本地有一个客户端 ...

  7. web前端基础仏学习css精灵css sprite技术解析

    说到css sprite技术第一次接触还是在百度站长工具中网站检测时看到到,说这个技术可以减少网站图片请求次数,当时还不是很理解,之后了解了一番,明白了其中的原理,故在此给大家分享一下.    CSS ...

  8. # 前端基础(HTML + CSS + JavaScript)

    一.HTML 基础概念:超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言. 可以使用 HTML 来建立自己的 WEB 站点,H ...

  9. 【前端基础】12.CSS 基础知识学习——基本语法结构

    视频 目录 一,css基本规则规范 1.快捷方式 2.css注释 3.css命名规范 4.css书写规范 (1)空格规范 (2)选择器规范 (3)属性规范 5.css样式规则 二,字体样式 1.fon ...

  10. 文成小盆友python-num14 - web 前端基础 html ,css, JavaScript

    本部分主要内容 html - 基础 css - 基础 一.html 标签 html 文档标签树如下: head 部分 Meta(metadata information) 提供有关页面的元信息,例:页 ...

最新文章

  1. (四)spring cloud微服务分布式云架构-配置中心和消息总线(配置中心终结版)...
  2. LeetCode: Jump Game II
  3. 最大功率28W,高通新一代快充技术QC4.0曝光
  4. noip模拟赛 fateice-string
  5. Java Spring初学者之调试器里括号包含的类含义
  6. NIO介绍与Netty通信简单入门
  7. mysql修改root密码的方法
  8. openfire+elipse的导入配置
  9. Spark SQL概念学习系列之Spark Shark是什么?
  10. Wings-让单元测试智能全自动生成
  11. swift moya框架+rxswift+handyjson+SwiftyJSON封装和使用教程
  12. 抖音5×5一笔连线问题无解的证明
  13. padavan手动安装php
  14. 2011年上半年五大臭名昭著的数据库泄密事件--转载
  15. 图像信息处理:bmp文件、颜色空间转化、灰度图
  16. VIM实用指南(1)字符串替换
  17. jQuery_删除及清空节点
  18. PostgreSQL 不在使用tigger或rule来模拟 SSQLSERVER timestamp 行变化版本管理
  19. FPGA - 7系列 FPGA内部结构之Clocking -03- 时钟管理模块(CMT)
  20. 跨市场套利——策略简介与风险因素

热门文章

  1. 省会、自治区、直辖市、特别行政区
  2. <数据库原理与应用> (SQL Server 2012)---基于计算思维 教材习题答案
  3. 【MATLAB基础】数据作图--imagesc
  4. 上古卷轴5json文件修改_捏脸工具-RaceMenu
  5. windows 7启动项和引导文件bcdboot
  6. 408计算机考研交流群,考研初试复习经验分享(计算机408)
  7. GNS3使用二:通过ASDM管理ASA防火墙
  8. B站视频下载与字幕下载转换
  9. SWMM[Storm Water Management Model]模型代码编译调试环境设置
  10. 【转载】MINI2440 TD35 P35触摸屏不能使用? 让我们来把一线触控改四线触控