html+css知识点以及常见的坑

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)

  • 使用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显示与隐藏

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

鼠标样式(cursor)

  • default——默认
  • pointer——小手
  • text——文本
  • move——移动
  • not-allowed——禁止

轮廓线(outline)

outline:color||style||width;

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

textarea

防止任意拖拽,resize:none。

vertical

实现内容垂直方向上定位,只作用于行内元素与行内块级元素。通常用来对行内块元素与文字的对齐,图片点对于文字的顶线、中线、基线、底线对齐。默认情况下是基线对齐。
可取值: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;
    

精灵图

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

margin负值

  • 定位时的水平垂直居中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只适用于定位,对于标准流、浮动不起作用。

css三角形制作

  1. 宽度、高度设置为0
  2. 每个边框设置宽度和类型
  3. 想要的边框方向设置为color,其余的边框设置为transparent
  4. 兼容性加上:font-size:0;line-hight:0;

表格属性table

  1. 边框显示:border:"1"
  2. 宽度:width
  3. 高度:height
  4. 内容之间的距离cell-spacing
  5. 内容与边框之间的距离:cell-padding
  6. 取消边框叠加:border—collapse
  7. 表格与网页的对齐方式:align
  8. 表格说明:caption

表单form

  1. 传值的地址:action
  2. 提交的方式:method:post/get
  3. 表单的名字:name

input

  1. type: text | password | radio | checkbox | button | submit | reset | image | file
  2. name
  3. value
  4. maxlength
  5. size
  6. checked

网站ico图标的使用

  1. 使用图标
    • 把图标放置index目录下
    • 在head标记中使用<link rel = "shortcut icon" href = "favicon.ico" type = "image/x-icon">
  2. 制作图标
    • 剪切图片
    • 在www.bitbug.net中转换成ico格式,并放置于根目录下。

三大标签

  1. 标题title
  2. 关键字
  3. 网页描述

icon标记使用

  1. 下载:www.iconmoon.net 或者 阿里图标x
  2. 解压下载文件,并把其中的fonts文件夹放置到index.html的根目录
  3. 在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;
}
  1. 在解压的文件夹中打开html文件,选中需要的图标,点击旁边的标记并复制,在需要使用的标记()中粘贴。
  2. 设置该标记的css属性font-family:icomoon;

logo优化

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

定位中left和right的区别

文字的前进方式不同。

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

行内元素转为块级元素

  • display样式转换
  • float
  • 脱离文档流定位position:absolute | fixed

过渡属性:transition

transition: 属性值 过渡时间 过渡形式 延迟时间;
  • 多组属性用","分隔。
  • 若是指定所有属性则用all。
  • 默认的过渡形式为ease。
  • 默认延迟时间0s。
  • transition属性写在需要变化的元素重。

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

有行高可不设置高度。

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

获取焦点focus

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

css中属性的书写顺序

原文地址:https://www.cnblogs.com/JonnyJiang-zh/p/13546092.html