前端开发笔记(3)css基础(中)
上一篇中我们学习了html的标准文档流,下面我们先来看看如何脱离标准流。
脱离标准流
css中一共有三种方法脱离标准流
- 浮动
- 绝对定位
- 固定定位
浮动
我们要搞清楚什么是浮动,先来看一个标准文档流的例子
<style type="text/css">
div{
width:100px;
height:100px;
margin:10px;
border:1px solid red;
}
</style>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
</body>
浏览器执行效果:
会发现标准文档流这4个div不能并排,下面我们设置浮动让他们可以并排。
<style type="text/css">
div{
width:100px;
height:100px;
margin:10px;
border:1px solid red;
float:left; /* 设置浮动(向左浮动) */
}
</style>
浏览器运行结果:
浮动的特点:
- 浮动的元素脱离标准流。(这个已经在上面看到了)
浮动的元素相互贴靠。
我们去掉上面样式中的margin看看是否使靠帖的div{
width:100px;
height:100px;
/* margin:10px; */
border:1px solid red;
float:left; /* 设置浮动(向左浮动) */
}浮动的元素有“字围”效果。
<head>
<style type="text/css">
img{
float:left;
}
</style>
</head>
<body>
<img src="img1.jpg"/>
<p>
这里是文字...(此处省略1000字)
</p>
</body>浏览器执行结果:
绝对定位
演示一个绝对定位脱离标准流的例子,下面详细介绍几种定位。
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Document</title>
<style type="text/css">
div{
border: 1px solid red;
width:100px;
height:100px;
position:absolute; /* 绝对定位 */
top:20;
}
.div1{
left:20;
}
.div2{
left:120px;
}
.div3{
left:230px;
}
.div4{
left:340px;
}
</style>
</head>
<body>
<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>
<div class="div4"></div>
</body>
固定定位
将上面例子中的position值改为fixed后效果和上面一样
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Document</title>
<style type="text/css">
div{
border: 1px solid red;
width:100px;
height:100px;
position:fixed; /* 固定定位 */
top:20;
}
.div1{
left:20;
}
.div2{
left:120px;
}
.div3{
left:230px;
}
.div4{
left:340px;
}
</style>
</head>
<body>
<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>
<div class="div4"></div>
</body>
浮动的清除
清除浮动的原因
先来看一个小案例
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Document</title>
<style type="text/css">
li{
float:left;
background-color:yellow;
padding:20px;
}
</style>
</head>
<body>
<div>
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JS</li>
<li>HTML5</li>
<li>APP</li>
</ul>
</div>
<div>
<ul>
<li>数据结构</li>
<li>设计模式</li>
<li>操作系统</li>
</ul>
</div>
</body>
我们会发现上面的第二个div中的li元素会去贴靠第一个div中的最后一个元素。原因是因为div没有设置高度,那么此时你可能会问了,给div设置一个高度不就可以了,为什么要想办法去清除浮动呢?有的小朋友可能就问了,刚刚不是学习了怎么浮动,浮动能脱离标准文档流,现在怎么又要清除浮动了?
一般我们给容器不去设置固定的高度,而是由它的内容的高度自适应,这样才能适配到更多浏览器并且容易维护和修改。这只是清除浮动的一个原因,总之有的时候我们并不希望我们的块标签跟随着另一个标签,此时就需要清除浮动。
给父标签添加高度
给上面的案例中的div添加高度
div{
height:50px;
}
浏览器执行结果:
这个方法并不为一种很好的清除浮动的方法,如果确实需要设置高度可以这样做。
clear:both;属性清除
将上面的div样式改为clear:both;
div{
clear:both;
}
浏览器执行结果和上面一致,但是这种方法有一个不好的地方margin在一定程度上会存在失效。
div{
clear:both;
margin:50px;
}
会发现上面设置的margin没有效果
隔墙法
在两个div中间放置一个clear:both;样式的div
<style type="text/css">
.splite{
clear:both;
}
li{
float:left;
background-color:yellow;
padding:20px;
}
</style>
<body>
<div>
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JS</li>
<li>HTML5</li>
<li>APP</li>
</ul>
</div>
<div class="splite"</div> <!-- 这是一堵墙 -->
<div>
<ul>
<li>数据结构</li>
<li>设计模式</li>
<li>操作系统</li>
</ul>
</div>
内墙法
内墙法和上面的隔墙法很相似,是将“这堵墙”放到了第一个div内部
<body>
<div>
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JS</li>
<li>HTML5</li>
<li>APP</li>
</ul>
<div class="splite"</div> <!-- 这是一堵墙 -->
</div>
<div>
<ul>
<li>数据结构</li>
<li>设计模式</li>
<li>操作系统</li>
</ul>
</div>
overflow:hidden;属性清除
overflow:hidden;的本意是隐藏超出部分的内容,但是实际开发中发现这个属性可以巧妙的清除浮动。
<style type="text/css">
div{
overflow: hidden;
}
li{
float:left;
background-color:yellow;
padding:20px;
}
</style>
<body>
<div>
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JS</li>
<li>HTML5</li>
<li>APP</li>
</ul>
</div>
<div>
<ul>
<li>数据结构</li>
<li>设计模式</li>
<li>操作系统</li>
</ul>
</div>
</body>
IE6不兼容overflow:hidden;清除浮动,解决办法添加一个属性zoom:1;
overflow: hidden;
_zoom:1;
前端开发笔记(3)css基础(中)的更多相关文章
- 〖前端开发〗HTML/CSS基础知识学习笔记
经过一天的学习,把慕课网的HTML/CSS基础知识学完了,笔记整理: 1. 文件结构: HTML文件的固定结构: <html> <head>...</head> & ...
- day44前端开发2之css基础
web前端开发1一.前端三剑客之css 1.选择器:由标签/类/id单独或组合出现 2.作用域:{}内部区域 3.样式块:满足css链接语法的各种样式 eg:引入的基本样式 <head> ...
- 从零开始学习前端开发 — 2、CSS基础
一.CSS简介 1.CSS是什么 CSS是Cascading Style Sheets的简称,中文称为层叠样式表.特点:实现了表现与结构相分离 2.css基础语法 css是由选择符和声明两大部分组成 ...
- 前端开发笔记(1)html基础
HTML介绍 HTML是HyperTextMarkupLanguage超文本标记语言的缩写 HTML是标记语意的语言 编辑器 任何纯文本编辑器都能够编辑html,比如记事本,editplus,note ...
- Web前端开发如何利用css样式来控制Html中的h1/h2/h3标签不换行
H1/H2/H3/H4标题标签常常使用在一个网页中唯一标题.重要栏目.重要标题等情形下. H1在一个网页中最好只使用一次,如对一个网页唯一标题使用.H2.H3.H4标签则可以在一个网页中多次出现, ...
- web前端开发笔记(2)
一.什么是作用域. 所有变量都存在于一个执行环境中(也称作用域),这个执行环境决定了变量的生命周期,以及哪一部分代码可以访问其中的变量.总结: 执行环境有全局执行环境和函数执行环境. 每次进入一个新执 ...
- web前端开发笔记(1)
一.HTML标签书写有哪些规范? 页面编码. 文档声明. 关键字与描述. 行内元素不能包含块级元素. a标签不能嵌套a标签. 标签名和属性必须用小写字母书写,属性必须加引号,标签必须闭合,单标签页必 ...
- 好程序员web前端开发测验之css部分
好程序员web前端开发测验之css部分Front End Web Development Quiz CSS 部分问题与解答 Q: CSS 属性是否区分大小写? <p><font si ...
- Linux及Arm-Linux程序开发笔记(零基础入门篇)
Linux及Arm-Linux程序开发笔记(零基础入门篇) 作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/bee ...
- 【Linux开发】Linux及Arm-Linux程序开发笔记(零基础入门篇)
Linux及Arm-Linux程序开发笔记(零基础入门篇) 作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/beer ...
随机推荐
- 【xsy2913】 enos 动态dp
题目大意:给你一棵 $n$个点 以 $1$为根 的树,每个点有$ 0,1,2 $三种颜色之一,初始时整棵树的颜色均为 $0$. $m$ 次操作, 每次操作形如: 1 x y c : 将 $x$到$y$ ...
- 10-04 Java 权限修饰符,类及其组成常见的修饰符
四种权限修饰符的测试 /* 权限修饰符: 本类 同一个包下(子类和无关类) 不同包下(子类) 不同包下(无关类) private Y 默认 Y Y protected Y Y Y public Y Y ...
- StringBuffer、StringBuilder、冒泡与选择排序、二分查找、基本数据类型包装类_DAY13
1:数组的高级操作(预习) (1)数组:存储同一种数据类型的多个元素的容器. (2)特点:每个元素都有从0开始的编号,方便我们获取.专业名称:索引. (3)数组操作: A:遍历 public stat ...
- MySQL笔记(6)---锁
1.前言 我们都知道在并发的情况下,修改数据时需要添加锁,但是却对数据库锁的工作原理不甚理解,不知道锁的运行机制,也就对数据的安全性无法明白.本章记录MySQL中锁的相关知识. 2.什么是锁 锁是数据 ...
- 一、Linq简介
语言集成查询Language Integrated Query(LINQ)是一系列将查询功能集成到C#语言的技术统称. 传统数据查询的缺点: 简单的字符串查询,没有编译时类型检查或Intellisen ...
- CentOS命令行连接带密码的wifi
安装工具包 yum install -y wpa_supplicant 确定我们要连接的wifi的名称和密码,名称为ESSID.这里假设wifi名称为TPLINK,假设密码为password,下面请注 ...
- [个人项目] 使用 Vuejs 完成的音乐播放器
Foreword 虽然音乐播放这类的项目的静态展示居多,业务逻辑并不复杂,但是对于我这种后端出身的前端萌新来说,能使用vuejs完成大部分功能, 也会有许多收获. api:我使用的是一个开源的 nod ...
- How to correctly handle ThreadLocal.get() returning null
Java's ThreadLocals make certain things easy, but special care must be taken to make sure they are r ...
- AutowireCapableBeanFactory源码详解
一.概述 对于想要拥有自动装配能力,并且想要把这种能力暴露给外部应用BeanFactory类需要实现此接口. 正常情况下不要使用此接口,应该更倾向于使用BeanFactory或者ListableBea ...
- SpringBoot学习(二)——Spring的Java配置方式
Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 一.@Configuration 和 @Bean Spring的Java配置方式是通过@Configuration和@Bean ...