结构伪类选择器

根据元素在HTML中的结构关系查找元素

    选择器              说明

  E:first-child{}      匹配父元素中的第一个子元素,并且是E元素

  E:last-child{}      匹配父元素中的最后一个子元素,并且是E元素

  E:nth-child(n){}     匹配父元素中第n个子元素,并且是E元素

  E:nth-last-child(n){}   匹配父元素中倒数第n个子元素,并且是E元素

n的注意点:

  1.n为:0、1、2、3、4、5、6、......

  2.通过n可以组成常见公式

    功能      公式

    偶数     2n、even

    奇数    2n+1、2n-1、odd

   找到前五个    -n+5

 找到从第五个往后    n+5

    /* 偶数 */
    /* li:nth-child(2n) { */
    /* 奇数 */
    /* li:nth-child(2n+1) { */
    /* 找到前3个 */
    /* li:nth-child(-n+3) { */
    /* 4的倍数 */
    /* li:nth-child(4n) { */
伪元素:一般页面中的非主体内容可以使用伪元素
区别:(1)元素:HTML设置的标签
   (2)伪元素:由CSS模拟出的标签效果
种类:  伪元素          作用
     ::before    在父元素内容的最前面添加一个伪元素
        ::after      在父元素内容的最后添加一个伪元素
必须设置content属性才能生效,伪元素默认是行内元素(content: '内容';)
  <!-- 伪元素:通过CSS创建标签,装饰性的不重要的小图 -->
  <!-- 找父级,在这个父级里面创建子级标签 -->
标准流就是标签默认的排列方式(文档流)
冗余就是重复的意思

浮动

浮动早期的作用:图文环绕

浮动现在的作用:网页布局

代码:float:left/right;

特点:浮动元素会脱离标准流(简称:脱标),在标准流中不占位置;浮动比标准流高半个级别,可以覆盖标准流的元素;浮动找浮动,下一个浮动元素会在上一个浮动元素后面浮动

浮动元素特殊显示效果:一行显示多个,可以设置宽高

/* 浮动:在一行排列,宽高生效 ---浮动后的标签具备行内块特点 */
  /* CSS书写顺序:浏览器执行效率会更高
  1.浮动 / display
  2.盒子模型:margin border padding 宽度高度背景色
  3.文字样式 */
    /* 如果父级的宽度不够,子级会自动换行 */
    /* 第四个li和第八个li右侧间距清除 */
    .right li:nth-child(4n) {
      margin-right: 0;
    }
清除浮动:清除浮动带来的影响(如果子元素浮动了,此时子元素不能撑开标准流的块级父元素)
方法1:直接设置父元素高度(简单粗鲁,方便、但是有些布局中不能固定父元素高度,如:新闻列表,京东推荐模块)
方法2:额外标签法(在父元素内容的最后添加一个块级元素,给添加的块级元素设置clear: both)(会在页面中添加额外,会让页面的HTML结构变得复杂)
方法3:单伪元素清除法(用伪元素替代了额外标签)(和额外标签法原理一样)
基本写法:
.clearfix::after {
      content: '';
      /* 伪元素添加的标签是行内的,要求是块 */
      display: block;
      clear: both;
      /* 为了兼容性 */
      height: 0;
      visibility: hidden;
    }
特点:项目中使用,直接给标签加类即可清除浮动
方法4:双伪元素清楚法
/* .clearfix::before作用:解决外边距塌陷问题
 外边距塌陷:父子标签,子级加margin会影响父级的位置 */
    /* 清除浮动 */
    .clearfix::before,
    .clearfix::after {
      content: '';
      display: table;
    }
    /* 真正清楚浮动的标签 */
    .clearfix::after {
      clear: both;
    }
特点:项目中使用,直接给标签加类即可清除浮动
方法5:给父元素设置overflow: hidden; (直接给父元素设置)方便

随机推荐

  1. windows下解决getAddressInfo Failed的一种办法

    从九点到现在,解决完这个问题就四点了,其实不难,只是第一次遇到和我太菜. 就是管理员身份打开命令行然后输入ipconfig /flushdns,作用是刷新dns解析缓存,这还不够,如果只做这一步,重启 ...

  2. oracle 导出导入表 不到出指定表

    导出多个表 exp LSXYYSZHMRMS/******@PK99SERVICE file=d:\fuhcx.dmp  tables=(fhcxgxxx,fhcxjcxx,fhcxlbxx,fhcx ...

  3. Software_C#_grammer_Deletegate--Strategy

    2018-04-30 18:59:04. 由 委托的 动态选择方法 联想到的 Strategy Pattern 一 : 策略模式 将  宿主   与  算法 分离, 算法被封装为对象, 客户端代码用 ...

  4. 086_Service Cloud

    最近一个Call Center的项目刚刚开始,使用的是Sales Cloud + Service Cloud 首先在sfdc上配置一个 call center等一些电话服务的url 安装一个CTI , ...

  5. 解决GitHub下载速度慢下载失败的问题

    最近在GitHub上拉取代码时,每次git clone都是文件下载完了发现连接就断掉了,或者下载压缩包显示网络连接错误的情况.下面介绍找到的解决方法: 1.打开码云(当然不是福报)https://gi ...

  6. ntp子母钟(gps子母钟系统)时钟系统在智能交通系统中的重要性

    ntp子母钟(gps子母钟系统)时钟系统在智能交通系统中的重要性 ntp子母钟(gps子母钟系统)时钟系统在智能交通系统中的重要性 技术交流:岳峰 15901092122 http://www.bjh ...

  7. 接入GoogelAdmob C#服务器端验证 (SSV) 回调

    记一次接入谷歌广告验证 官方文档:https://developers.google.cn/admob/android/rewarded-video-ssv 需要httpserver进行验证,项目里有 ...

  8. Excel条件格式的应用

    一.突出单元格规则 大于/小于/等于/包含/发生日期/重复值 发生日期(自定义)通常通过辅助单元格进行:选中单元格区域,条件格式-新建规则-选择规则类型(使用公式确定要设置的单元格),设置内容如下 二 ...

  9. Java多线程编程技术方案原理

    一 ,多线程相关的一些概念 1,线程和进程: 线程指的是进程中一个单一顺序的控制流, 进程中可以并发多个线程,每条线程并行执行不同的任务,被认为是一个计算资源的集合.进程不能被任务是一个应用,因为有些 ...

  10. Android版本功能

    Android 1.0 2008年9月23日,发布Android操作系统中的第一个正式版本:Android 1.0(Astro"铁臂阿童木").全球第一台Android设备HTC ...