1、针对于before和after伪元素的用法:

<style>
.clearfix:before,
.clearfix:after{
clear:both;
content:"";
display:block;
}
</style> <div class="clearfix">
<div class="content">what do you say?</div>
</div>

注意点:其中伪元素before和after插入的content是插入到class=“clearfix”的div内部的头部和尾部的。

2、浮动的一些问题

1、如果原来的空间有块级标签,浮动元素不会占用其空间,换行找到空的空间进行浮动。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>position</title>
<style>
.left{
float:left;
}
</style>
</head>
<body>
<div class="content">content </div>
<div class="left">turn left</div> </body>
</html>

效果:

2、当元素浮动时,其他元素会忽视浮动元素的存在,与浮动元素在一行显示,会和浮动元素空间重叠,但是互相不会挤掉各自的文本元素

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>position</title>
<style>
.content{
width: 150px;
height: 150px;
border: #0f0f0f 1px solid;
float:left;
background:blue ;
}
.left{
width: 200px;
height: 150px;
border: yellow 1px solid;
background-color:black;
color: #eeeeee; }
</style>
</head>
<body>
<div class="content">content </div>
<div class="left">turn left</div> </body>
</html>

效果:

3、伪类的生效标签

伪类:link;

     visited:

   hover:

   active:

注意:1、link和visited只对超链接标签有效,一般是a标签,对其他标签没有效果,而hover和active对所有标签都有效。

   2、使用时遵循“爱恨原则”(LoVe/HAte),即四种伪类的首字母:LVHA,即先放link和visited(一般放一起,使用一个样式),再放hover,最后放active,因为      1.鼠标经过的“未访问链接”同时拥有a:link、a:hover两种属性,后面的属性会覆盖前面的属性定义(即经过时如果hover在link前面,hover会优先生效,link后生效并且会覆盖hover的效果,最后显示的是link的效果,与我们的期望不符);

      2.鼠标经过的“已访问链接”同时拥有a:visited、a:hover两种属性,后面的属性会覆盖前面的属性定义(解释同上);


      所以说,a:hover定义一定要放在a:link、a:visited的后面(详细解释进链接https://zhidao.baidu.com/question/2203427712216281148.html)

4、子元素溢出问题(这个不好理解,很重要)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>溢出问题</title>
<style>
*{margin: 0;padding: 0;background-color: black}
.son{
width: 100%;
margin: 10px;
background-color: yellow;
}
.father{
width: 50%;
}
</style>
</head>
<body>
<div class="father">
<div class="son">my name is son.</div>
</div>
</body>
</html>

效果如下:

解析:1、设置width设置的是盒子当中content的宽度,%表示时是指占父元素width的多少(即父元素content)不包括boder,padding和margin宽度,由于页面渲染是从左往右的,所以当子元素溢出或者未占满父元素时设置margin(离包含它盒子的边框距离,溢出和未充满时,margin-right找不到无法找参照物),所以margin-left有效,margin-right无效,但是padding都是有效的,因为padding是距离content的距离,始终有参照物

2、当width=100%设置margin时,因为content的width不变,但是因为又设置了margin,所以会溢出(毕竟width本来说100%,子元素再大可不就溢出了嘛),溢出了margin-right找不到参照物所以失效

关于回顾css发现的一些问题的更多相关文章

  1. 回顾CSS布局易混淆的概念

    一.浮动模型 元素默认是static的,不能浮动,但可以用CSS样式设置为浮动 浮动模型只有两个值 float:left 和 float:right ,可以让块状元素同行显示 二.层模型 top/bo ...

  2. 看css发现一个pointer-events:none;的东西

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. (转)每位设计师都应该拥有的50个CSS代码片段

    原文地址:http://www.cnblogs.com/fengyuqing/archive/2013/06/15/css_50.html 面对每年如此多的 新趋势 ,保持行业的领先是个很困难问题. ...

  4. css 百分比继承关系的探讨

    引入:近日在回顾css基础的时候发现了一个有趣的问题,就是css在继承百分比类属性的时候是继承百分比后再根据父级宽高计算,还是继承父级根据百分比计算过后的绝对值.下面举一个简单的例子来描述这一个问题, ...

  5. 现代CSS进化史

    英文:https://medium.com/actualize-...编译:缪斯 CSS一直被web开发者认为是最简单也是最难的一门奇葩语言.它的入门确实非常简单--你只需为元素定义好样式属性和值,看 ...

  6. Google css & Google fonts

    最近用某开源模板做提案的时候, 抓包工具老是有外部Request. 问题出在某css中有这么一句: @import url(https://fonts.googleapis.com/css?famil ...

  7. chrome刷新CSS

    改动CSS发现页面根本没有变化,再三查看确实是这一处CSS,那么可能的就是浏览器缓存了CSS而刷新无效了. chrome刷新CSS: 方法1:直接ctrl+F5,进行强制刷新页面,浏览器会重新加载所有 ...

  8. Code Review: 超越“审、查、评”的代码回顾

    http://news.cnblogs.com/n/532148/ 文/TWInsights-伍斌 Code Review 应该是软件开发团队“共同学习.识别模式和每日持续”的过程,而不是带有“审.查 ...

  9. css清除浮动的原理

    最近学习css发现了高度塌陷时候要清除浮动,为了理解清楚浮动原理,网上找了不少资料,发现都写的不是很清楚,而且都是一模一样的内容,我在里分享一下我对清楚浮动原理的理解, 如果你已经很了解什么是浮动和浮 ...

随机推荐

  1. E20180513-hm

    letter n. 信; 证书,许可证; 字母,文字; 字面意义; bracket n. 支架,悬臂; 括弧; 类别,等级; [数] 同类项; coefficient  n. 系数; (测定某种质量或 ...

  2. [Xcode 实际操作]八、网络与多线程-(2)使用UIApplication对象打开网页

    目录:[Swift]Xcode实际操作 本文将演示如何使用应用程序单例对象,打开指定的网页. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKi ...

  3. MySQL 命令(一)

    mysql 数据库:保存有组织的数据的容器.(通常是一个文件或一组文件) 表:某种特定类型数据的结构化清单.数据库中的每个表都有一个名字,用来标识自己,此名字是唯一的 列:表中的一个字段.所有表都是由 ...

  4. 洛谷1005(dp)

    1.不要贪,缩小区间去dp就好. 2.预处理指数. 3.__int128可还行. #include <cstdio> #include <cctype> #include &l ...

  5. SSH之小问题解惑

    (注:以下版本指的是spring3+hibernate3+struts2) 1,web开发中,servlet对象是否线程安全? 当一个http请求到来时,web容器的调度线程(Dispach Thre ...

  6. c51中的bit,SBIT

    在51单片机的0x20~0x2f,是bdata区既可以字节寻址又可以位寻址.用法: 1 先用bdata存储类型关键字 定义变量,注意其值就是地址 .unsigned char bdata MYBITS ...

  7. js获取窗口参数

    window.onscroll=function getScrollTop(){ console.log(scrollTop) if(document.documentElement&& ...

  8. 渣渣菜鸡为什么要看 ElasticSearch 源码?

    前提 人工智能.大数据快速发展的今天,对于 TB 甚至 PB 级大数据的快速检索已然成为刚需,大型企业早已淹没在系统生成的浩瀚数据流当中.大数据技术业已集中在如何存储和处理这些海量的数据上.Elast ...

  9. Ajax基础介绍

      什么是Ajax 首先来看一下什么是Ajax,英语全称Asynchronous JavaScript And XML,翻译成中文就是异步的JavaScript和XML.也被称为异步无刷新技术 先来解 ...

  10. Mysql order by 多字段排序

    mysql单个字段降序排序: select * from table order by id desc; mysql单个字段升序排序: select * from table order by id ...