html+css知识点以及常见的坑
阅读原文时间:2023年07月10日阅读:1

float 与 绝对定位

  • 共同点:都脱离文档流,不占用原来的位置,后面的内容占有位置
  • 不同点:
    • float后者居上,补齐,且只能在父级盒子内活动,且不能浮动在照片上。
    • 绝对定位脱离文档流后,直接漂浮到已经定位的父级上去,可以直接脱离未定位的父级盒子。
    • 浮动会受父级的padding值影响,且,不能实现。

relative脱离文档流后依然占有原来的位置,而absolute脱离文档流后不占有后面的位置。

绝对定位常用于图片上的浮动标记。

static为默认的定位方式 <==>none

常用的搭配:子绝父相,自己改变位置,父级占有位置,防止后面的内容占有位置。

当父元素没有设置高度,因为子元素而导致父元素高度为0。

  • 额外标签法

    • 在浮动元素后面加上一个<div style="clear:both;"></div>
  • 为父级添加overflow:hidden;

  • 使用:after伪元素选择器

    • selector:after {
      content: "";
      display: block;
      clear: both;
      height: 0;
      visibility: hidden;
      }
  • 使用:before & :after双伪类元素

    • selector:before,
      selector:after {
      content: "";
      display: table;
      }
      selector {
      clear: both;
      }
  • 使用可以脱离文档流的属性

    • 父级使用float
    • 父级使用display: table | fixed
    • 父级使用position: absolute | fixed

完全脱离文档流,以可视浏览器窗口作为父级元素。固定定位=可视浏览器窗口+边偏移。

对已经(绝对/固定)定位的元素使用margin:auto让元素居中显示无效。需要使用top/left/right/bottom + margin-left/right/top/bottom。

/* 定位元素居中*/
selector {
    /* 垂直居中*/
    top: 50%;
    margin-top: -1/2 * height;
}

使用了定位多个元素,回有堆叠作用,后面的叠在前面的上面。

解决办法:z-index:number;。取值为整数,值越大,优先级越高。只能作用于使用了position的元素,对其他的标准流、浮动等无效。后面不跟单位。

  • 使用display:inline-block
  • 使用float
  • 使用absolute/fixed

以上方法都可以达到显示模式转换的效果,更改元素的display属性值。

  • 解决办法:

  • 父元素添加padding/border/overflow

  • 子元素/父元素使用脱离文档流属性:float/display/position

    border-top-left-radius:length;
    border-top-right-radius:length;
    border-bottom-right-radius:length;
    border-bottom-left-radius:length;

先写上下再左右。

使用display:none,也可以使用visibility:hidden都可以达到隐藏的效果。但是,display隐藏后不会包留原来的位置。

  • default——默认

  • pointer——小手

  • text——文本

  • move——移动

  • not-allowed——禁止

    outline:color||style||width;

一般情况下都是用outline:none取消轮廓线。

防止任意拖拽,resize:none。

实现内容垂直方向上定位,只作用于行内元素与行内块级元素。通常用来对行内块元素与文字的对齐,图片点对于文字的顶线、中线、基线、底线对齐。默认情况下是基线对齐。

可取值:top || middle || baseline || bottom

  • vertical

    因为图片默认情况下是对齐于文字的基线,但是基线于底线之间还有一段距离,故图片与边框之间存在空白间隙,调整vertical属性可解决。

  • display

    因为默认情况下图片属于行内块级元素,故vertical默认属性为baseline作用于块级元素,只要调整图片的显示模式为块级元素即可解决。

  • white-space 用来设置或检索对象内文字的显示方式。

     white-space:normal; /* 默认方式*/
     white-space:nowrap; /* 强制一行显示,直到文本结束或者遇到<br>才进行换行*/
  • text-overflow 用来设置或检索是否使用(…)表示对象内文字的溢出。

    text-overflow:clip; /*不需要省略标记(...)表示,而是直接剪裁*/
    text-overflow:ellipsis;/*对象内文字溢出时使用省略号(...)表示*/``
  • 使用方式

    /*第一步,先使用white-space使得文字强制一行显示*/
    white-space:nowrap;
    /*第二步,使用overflow使得溢出的文字隐藏*/
    overflow:hidden;
    /*第三步,用省略号代替溢出的部分*/
    text-overflow:ellipsis;

将多个图标的背景图放置于一张大图上,通过改变背景图的位置实现获取相应的背景图,减少浏览器与服务器的交互次数。

  • 定位时的水平垂直居中top/left/right/bottom;margin-left/right/top/bottom
  • 盒子边框的堆叠margin-left/right/top/bottom:-1px;,border-collapse只作用于表格。该方法会导致后面的元素压住前面的元素。
  1. 使用margin负值实现

    • 通过使用position改变自身位置实现
  2. 使用定位实现

    • 通过使用z-index实现,注意:z-index只适用于定位,对于标准流、浮动不起作用。
  3. 宽度、高度设置为0

  4. 每个边框设置宽度和类型

  5. 想要的边框方向设置为color,其余的边框设置为transparent

  6. 兼容性加上:font-size:0;line-hight:0;

  7. 边框显示:border:"1"

  8. 宽度:width

  9. 高度:height

  10. 内容之间的距离cell-spacing

  11. 内容与边框之间的距离:cell-padding

  12. 取消边框叠加:border—collapse

  13. 表格与网页的对齐方式:align

  14. 表格说明:caption

  15. 传值的地址:action

  16. 提交的方式:method:post/get

  17. 表单的名字:name

  18. type: text | password | radio | checkbox | button | submit | reset | image | file

  19. name

  20. value

  21. maxlength

  22. size

  23. checked

  24. 使用图标

    • 把图标放置index目录下
    • 在head标记中使用<link rel = "shortcut icon" href = "favicon.ico" type = "image/x-icon">
  25. 制作图标

  26. 标题title

  27. 关键字

  28. 网页描述

  29. 下载:www.iconmoon.net 或者 阿里图标x

  30. 解压下载文件,并把其中的fonts文件夹放置到index.html的根目录

  31. 在css中声明该字体:

    @font-face {
    font-family:'icomoon';
    /2,一定要注意跻径的间题/
    src:url( 'fonts/icomoon.eot?7kkyc2' );
    src:url('fonts/icomoon.eot?7kkyc2#iefix') format( 'embedded-opentype')
    url('fonts/icomoon.ttf?7kkyc2' ) format( 'truetype'),
    url( 'fonts/icomoon.woff?7kkyc2' ) format( 'woff' ),
    url('fonts/icomoon.svg?7kkyc2#icomoon' ) format('svg');
    font-weight: normal;
    font-style: normal;
    }

  32. 在解压的文件夹中打开html文件,选中需要的图标,点击旁边的标记并复制,在需要使用的标记()中粘贴。

  33. 设置该标记的css属性font-family:icomoon;

  • logo里面首先放一个h1标签,目的是为了提权,告诉搜索引擎,这个地方很重要
  • h1里面在放一个连接,可以返回首页的,给连接一个大小和logo的背景图片
  • 连接里面要放文字(网站名称),为了搜索引擎收录我们。但是文字不要显示出来
    • 要用text-indent移到盒子外面(text-indent: -9999px)然后overflowhidden淘宝的做法
    • 直接给font-size:0;就看不到文字了,京东的做法。
  • 最后给连接一个title这样鼠标放到logo上,就可以看到提示文字了

文字的前进方式不同。

span {
            position: absolute;
            top: 0;
            left: 100px;
            height: 14px;
            background-color: red;
            line-height: 14px;
        }


<span>8</span>
  • display样式转换

  • float

  • 脱离文档流定位position:absolute | fixed

    transition: 属性值 过渡时间 过渡形式 延迟时间;

  • 多组属性用","分隔。

  • 若是指定所有属性则用all。

  • 默认的过渡形式为ease。

  • 默认延迟时间0s。

  • transition属性写在需要变化的元素重。

top | right | left | bottom 只对已经定位的元素有效果。

有行高可不设置高度。

行内块元素与文字垂直居中:vertical-align & display:inline-block。

  • focus伪类选择器。当单击输入框时,即获得焦点。
  • active 伪类选择器。active需要长按目标。