# HTML/CSS

# 三栏布局方式,两边固定,中间自适应的方法有哪些?

  • 弹性盒子flex: 左右固定款,中间flex: 1;
  • 自身浮动法:左栏左浮动,右边栏右浮动,中间栏放最后
  • 绝对定位法:左右两栏采用绝对定位,分别固定于页面的左右两侧,中间的主体栏用左右 margin 值撑开距离
  • margin负值法:左右两栏均左浮动,左右两栏采用负的 margin 值。中间栏被宽度为100%的浮动元素包起来
    margin负值的用法 (opens new window) margin负值三栏布局 (opens new window)

# css 都有哪些标签选择器?

  • id选择器(#box),选择id为box的元素

  • 类选择器(.one),选择类名为one的所有元素

  • 标签选择器(div),选择标签为div的所有元素

  • 全局选择器: (*),选择所有元素

  • 后代选择器(#box div),选择id为box元素内部所有的div元素

  • 子选择器(.one>one_1),选择父元素为.one的所有.one_1的元素

  • 相邻同胞选择器(.one+.two),选择紧接在.one之后的所有.two元素

  • 群组选择器(div,p),选择div、p的所有元素

  • 属性选择器

    • [attribute] 选择带有attribute属性的元素
    • [attribute=value] 选择所有使用attribute=value的元素
    • [attribute~=value] 选择attribute属性包含value的元素
    • [attribute|=value]:选择attribute属性以value开头的元素
  • 伪类选择器

    • :link :选择未被访问的链接
    • :visited:选取已被访问的链接
    • :active:选择活动链接
    • :hover :鼠标指针浮动在上面的元素
    • :focus :选择具有焦点的
    • :first-child:父元素的首个子元素
  • 伪元素选择器

    • :first-letter :用于选取指定选择器的首字母
    • :first-line :选取指定选择器的首行
    • :before : 选择器在被选元素的内容前面插入内容
    • :after : 选择器在被选元素的内容后面插入内容

CSS3中新增的选择器有如下:

  • 层次选择器(p~ul),选择前面有p元素的每个ul元素

  • 伪类选择器

    • :first-of-type 父元素的首个元素
    • :last-of-type 父元素的最后一个元素
    • :only-of-type 父元素的特定类型的唯一子元素
    • :only-child 父元素中唯一子元素
    • :first-of-type 父元素的首个元素
    • :last-of-type 父元素的最后一个元素
    • :only-of-type 父元素的特定类型的唯一子元素
    • :only-child 父元素中唯一子元素
    • :nth-child(n) 选择父元素中第N个子元素
    • :nth-last-of-type(n) 选择父元素中第N个子元素,从后往前
    • :last-child 父元素的最后一个元素
    • :root 设置HTML文档
    • :empty 指定空的元素
    • :enabled 选择被禁用元素
    • :disabled 选择被禁用元素
    • :checked 选择选中的元素
    • :not(selector) 选择非 <selector> 元素的所有元素
  • 属性选择器

    • [attribute*=value]:选择attribute属性值包含value的所有元素
    • [attribute^=value]:选择attribute属性开头为value的所有元素
    • [attribute$=value]:选择attribute属性结尾为value的所有元素