CSS 布局入门

简介:

概述

Web 兴起之后,关于CSS的介绍和学习资料已经铺天盖地。
本文不涉及具体的CSS语法之类的,而是希望从初学者的角度,让没有接触或很少接触CSS的人能快速的了解 CSS 到底是什么以及如何使用。

什么是 CSS

了解一个概念,首先看到的就是它的名字,而往往被忽略的,也是它的名字。
CSS (cascading style sheets),可以翻译成中文 层叠样式表 。从名字可以看出:

  • 层叠:说明 样式可以叠加,所以会有优先级
  • 样式表:说明CSS是描述样式的,而且只是个  ,不是程序语言,所以后来随着 CSS 的应用越来越多,才会有 Sass 和 Less 这些扩充 CSS 语法的语言出来

CSS 的作用

CSS 的作用就是样式,其实 Web 只用 HTML也可以做出来,只是随着机器和浏览器性能的提升,人们对网页的美观和易用性要求越来越高,CSS 的重要性才逐渐凸显。
CSS 我觉得有2个主要的作用:

  • 可以将 Web 的样式统一管理,便于修改,类似于程序语言中的变量或者配置文件
  • 将网页内容和样式分离开,让灵活呈现内容成为可能

注意 HTML 才是网页的实际内容,CSS 只是控制HTML元素的如何显示,显示与否。

CSS for 布局

CSS 在布局上用的最多,就是因为了有了 CSS,才会有所谓的 div+css 布局方式,以前用 HTML 都是 table 布局。

初步了解 div+css 的布局,我觉得了解3点就够了,框模型,定位和浮动。

框模型

每个div对于css来说都是一个  。每个框由内到外由4部分组成 content padding border margin
div 的长和框由这4部分的长之和和宽之和组成
示例:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8"/>
    <title>CSS Sample</title>
    <link href="index.css" rel="stylesheet"/>
  </head>
  <body>
    <div>Content</div>
  </body>
</html>

body {
  background-color: #FAEBD7;
}

div {
  width: 100px;
  height: 100px;
  padding: 30px;
  border: 10px solid blue;
  margin: 10px;
  background-color: red;
  text-align: center;
}

例子很简单,但是可以看出:

  1. 从外到内 依次是 margin, border, padding, content
  2. div 的 width 和 height 只是 content 的大小

定位

理解了 框模型之后,定位也很简单,其实就是将一个个框定位在页面上。
定位分为绝对定位和相对定位。

绝对定位

就是在浏览器上的绝对位置,通过 top 和 left 属性设置相对于浏览器左上角的距离

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>CSS Sample</title>
<link href="index.css" rel="stylesheet"/>
</head>
<body>
<div id="div1">Content1</div>
<div id="div2">Content2</div>
</body>
</html>

body {
  background-color: #FAEBD7;
}

div {
  width: 100px;
  height: 100px;
  padding: 30px;
  border: 10px solid blue;
  margin: 10px;
  background-color: red;
  text-align: center;
  position: absolute;
}

#div1 {
  top: 100px;
  left: 100px;
}

#div2 {
  top: 200px;
  left: 200px;
}

绝对定位明确但不灵活,除非屏幕大小能固定,否则需要多套css。设置不好会造成元素的重叠。
绝对定位中有个很关键的设置是 position: absolute

相对定位

相对定位中每个 div 的 top 和 left 不再是相对浏览器的左上角了。而是相对剩余位置的左上角。
同样是上面的例子,把 position: absolute 换成 position: relative 可以发现2个div 不再重叠了。

浮动

div 默认是 inline的,也就是每个 div 占据了一行。
布局时,如果希望多个div排列在一行,那么就会用到浮动(或者用以前的 table方式)
设置 div 浮动属性之后,就可以用div布局出各种结构。

下面以常见的管理系统为例,做一个简单的 div+css 布局

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8"/>
    <title>CSS Sample</title>
    <link href="index.css" rel="stylesheet"/>
  </head>
  <body>
      <div id="head">head</div>
      <div id="middle">
        <div id="nav">nav</div>
        <div id="content">content</div>
      </div>
      <div id="foot">foot</div>
  </body>
</html>

body {
  background-color: #FAEBD7;
  height: 100%;
  margin: 0px;
  padding: 0px;
}

div {
  border: 1px solid black;
  text-align: center;
}

#head {
  height: 50px;
  width: 100%;
}

#middle {
  width: 100%;
  top: 50px;
  bottom: 100px;
  left: 0px;
  position: absolute;
}

#nav {
  float: left;
  width: 200px;
  height: 100%;
}

#content {
  height: 100%;
  overflow: hidden;
}

#foot {
  height: 100px;
  width: 100%;
  bottom: 0px;
  left: 0px;
  position: absolute;
}

上面的示例中,head,foot 高度固定,nav 宽度固定。其他都是自适应的,可以通过调整浏览器窗口的大小看到效果。

总结

CSS 布局很简单,如果还有其他的交互动作,可以通过js来实现(比如导航和内容的联动)。
现在已经基本没有人会用 table 的布局方式了,因为 table 本来只展现数据的一种方式,row,cell 的方式也不适合组件化。



本文转自wang_yb博客园博客,原文链接:http://www.cnblogs.com/wang_yb/p/6066036.html,如需转载请自行联系原作者


目录
相关文章
|
9天前
|
前端开发 JavaScript 开发工具
【HTML/CSS】入门导学篇
【HTML/CSS】入门导学篇
19 0
|
16天前
|
前端开发 开发者 容器
彻底学会CSS grid网格布局
【4月更文挑战第1天】 彻底学会CSS grid网格布局
15 0
|
3月前
|
前端开发 JavaScript
Vue中使用纯CSS实现全屏网格加渐变色背景布局
Vue中使用纯CSS实现全屏网格加渐变色背景布局
71 0
|
2月前
|
Web App开发 JSON 前端开发
Webpack【搭建Webpack环境、Webpack增加配置文件、Webpack中使用Loader、Webpack分离CSS文件 】(一)-全面详解(学习总结---从入门到深化)
Webpack【搭建Webpack环境、Webpack增加配置文件、Webpack中使用Loader、Webpack分离CSS文件 】(一)-全面详解(学习总结---从入门到深化)
51 0
|
4天前
|
移动开发 前端开发 JavaScript
CSS选择器 前端开发入门笔记(十)
CSS选择器 前端开发入门笔记(十)
16 1
|
4天前
|
前端开发 搜索推荐 数据安全/隐私保护
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
14 1
|
7天前
|
前端开发 开发者 容器
【掰开揉碎】详解 CSS3 Grid 布局
【掰开揉碎】详解 CSS3 Grid 布局
N..
|
25天前
|
前端开发 容器
DIV+CSS网页布局
DIV+CSS网页布局
N..
8 0
|
1月前
|
前端开发 UED 开发者
探索前端开发中的CSS布局技巧
本文将介绍一些在前端开发中常用的CSS布局技巧,包括盒模型、浮动布局、弹性布局和栅格系统等。通过学习这些技巧,开发者可以更加灵活地控制页面的布局,提升用户体验和界面的美观性。
|
1月前
|
前端开发 JavaScript 开发者
编程笔记 html5&css&js 014 网页布局框架
编程笔记 html5&css&js 014 网页布局框架