HTML5与CSS3知识点总结(31-39)

31 解决外边距塌陷

满足以下条件就会产生外边距塌陷现象:

  1. 子元素在父元素里面
  2. 子元素中有margin-top或者margin-bottom值

解决方案:

第一种:给父元素增加内边距padding值

第二种方式:父元素增加边框border值

第三种方式:父元素增加overflow:hidden

第四种方式:给父元素或者子元素增加浮动,让其脱离标准流都可以

第五种:将父元素转变为行内块元素,display:inline-block

第六种:给父元素或者子元素定位都可以,原理同样是使其脱离标准流,不过只能用绝对定位和固定定位

第七种:给父盒子增加flex或者inline-flex

32 隐藏元素

隐藏一个元素可以通过把 display 属性设置为"none",或把 visibility 属性设置为"hidden"。但是请注意,这两种方法会产生不同 的结果。

visibility:hidden; 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了, 但仍然会影响布局。

display:none; 可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用 的空间也会从页面布局中消失。

33 使元素在盒子里面垂直水平居中
p{
      border: 1px solid red;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%,-50%);
  }
34 CSS改善 HTML 表单的外观(上接25)
  • 设置输入框的样式

    如果只想设置特定输入类型的样式,则可以使用属性选择器:

    input[type=text]{} - 将仅选择文本字段

    input[type=password]{} - 将仅选择密码字段

    input[type=number]{}- 将仅选择数字字段

  • 填充输入框

    使用 padding 属性在文本字段内添加空间

    input[type=text] {
    width: 100%;
    padding: 12px 20px;
    margin: 8px 0;
    box-sizing: border-box;
    }
    

    请注意,我们已将 box-sizing 属性设置为 border-box。这样可以确保元素的总宽度和高度中包括内边距(填充)和最终的边框。

  • 带边框的输入框

    使用 border 属性更改边框的粗细和颜色,并使用 border-radius 属性添加圆角

  • 彩色的输入框 使用 background-color 属性为输入添加背景色,并使用 color 属性更改文本颜色:

  • 获得焦点的输入框

    默认情况下,某些浏览器在获得焦点(单击)时会在输入框周围添加蓝色轮廓。你可以通过向输入框添加 outline: none; 来消 除此行为。

    input[type="text"] {
    width: 100%;
    padding: 12px 20px;
    margin: 8px 0;
    box-sizing: border-box;
    outline: none;
    }
    

    使用 :focus 选择器可以在输入字段获得焦点时为其设置样式:

    input[type="text"]:focus {
    background-color: lightblue;
    border: 3px solid #555;
    }
    
  • 带有图标/图像的输入框

    如果希望在输入框中包含图标,请使用 background-image 属性,并将其与 background-position 属性一起设置。还要注 意,我们添加了一个较大的左内边距(padding-left)来留出图标的空间:

    input[type="text"] {
    width: 100%;
    height: 46px;
    box-sizing: border-box;
    border: 2px solid #cccccc;
    border-radius: 4px;
    background-color: white;
    background-image: url('img/searchicon.png');
    background-position: 10px 10px;
    background-repeat: no-repeat;
    padding-left: 40px;
    }
    
  • 设置文本域的样式

    使用 resize 属性可防止对 textareas 调整大小(禁用右下角的“抓取器”):

    textarea {
    width: 100%;
    height: 150px;
    padding: 12px 20px;
    box-sizing: border-box;
    border: 2px solid #ccc;
    border-radius: 4px;
    background-color: #f8f8f8;
    resize: none;
    }
    
  • 设置输入按钮的样式

input[type="button"],
input[type="submit"],
input[type="reset"] {
background-color: green;
border: none;
color: white;
padding: 16px 32px;
text-decoration: none;
margin: 4px 2px;
cursor: pointer;/*鼠标变成手*/
}
35 CSS轮廓

轮廓是在元素周围绘制的一条线,在边框之外,以凸显元素。 轮廓与边框不同!轮廓是在元素边框之外绘制的,并且可能与其他内容重叠。轮廓也不是元素尺寸的一部分;元素的总宽度 和高度不受轮廓线宽度的影响。

  • 轮廓样式

    outline-style 属性指定轮廓的样式,并可设置如下值: dotted - 定义点状的轮廓。 dashed - 定义虚线的轮廓。 solid - 定义实线的轮廓。 double - 定义双线的轮廓。 groove - 定义 3D 凹槽轮廓。 ridge - 定义 3D 凸槽轮廓。 inset - 定义 3D 凹边轮廓。 outset - 定义 3D 凸边轮廓。 none - 定义无轮廓。hidden - 定义隐藏的轮廓。

  • 轮廓宽度 outline-width 属性指定轮廓的宽度

  • 轮廓颜色 outline-color 属性用于设置轮廓的颜色。

    outline: 5px solid yellow;
    
  • 轮廓偏移

    outline-offset 属性在元素的轮廓与边框之间添加空间。元素及其轮廓之间的空间是透明的。

36 CSS3 引入了媒体类型

CSS3 中的媒体查询扩展了 CSS2 媒体类型的概念:它们并不查找设备类型,而是关注设备的能力。

媒体查询可用于检查许多事情,例如: 视口的宽度和高度 ;设备的宽度和高度 ;方向(平板电脑/手机处于横向还是纵向模式);分辨率 使用媒体查询是一种流行的技术,可以向台式机、笔记本电脑、平板电脑和手机(例如 iPhone 和 Android 手机)提供定制的样式表。

媒体查询语法:媒体查询由一种媒体类型组成,并可包含一个或多个表达式,这些表达式可以解析为 true 或 false

@media not|only mediatype and (expressions) {
CSS-Code;
}

CSS3媒体类型

描述
all用于所有媒体类型设备。
print用于打印机。
screen用于计算机屏幕、平板电脑、智能手机等等。
speech用于大声“读出”页面的屏幕阅读器 。

媒体查询的简单实例:

下面的例子在视口宽度为 480 像素或更宽时将背景颜色更改为浅绿色(如果视口小于 480 像素,则背景颜色会是粉色):

body {
background-color: pink;
}
@media screen and (min-width: 480px) {
body {
background-color: lightgreen;
}
}

下例显示了一个菜单,如果视口的宽度为 480 像素或更宽,则该菜单会浮动到页面的左侧(如果视口小于 480 像素,则该菜单将 位于内容的顶部):

#leftsidebar { width: 100%; float: none; }
#main { margin-left: 0; }
@media screen and (min-width: 480px) {
#leftsidebar { width: 200px; float: left; }
#main { margin-left: 216px; }
}
37 box-sizing属性

通常一个块级元素实际所占宽高度=外边距(margin)+ 边界宽度(border-width) + 内边距(padding)+ 高度(height) / 宽度(width)

box-sizing是css3的新属性,对容器宽高进行定义:引入box-sizing: border-box的容器的内边距和边框不再会增加它的宽度和高度,即padding和border的值算在指定宽高内部的,但外边距依然时算作外部。

38 特殊选择器

:nth-child(n) 选择器匹配父元素中第n个子元素。参数是元素的索引,索引从1开始。n可以为odd(奇数)或者even(偶数)或者公式(例如:n+2)

指定每个p元素匹配父元素的第2个子元素的背景色:

p:nth-child(2){
    background-color: red;
}

:nth-of-type(n) 选择器匹配同类型中的第n个同级兄弟元素。参数是元素索引,索引从1开始。可以为odd(奇数)或者even(偶数)或者公式(例如:n+2)

:last-child 选择器用来匹配父元素中最后一个子元素。

::selection 选择器匹配元素中被用户选中或处于高亮状态的部分。只可用应用于少数的css属性:color,background,cursor,outline

39 过渡 transition属性
  • transition-property属性 用于设置应用过渡的css属性。其基本语法如下:

    transition-property:  none|all|property;
    
    属性值描述
    none没有属性会获得过渡效果
    all所有属性都将获得过渡效果
    property定义应用过渡效果的css属性名称,多个名称之间以逗号分隔
  • transition-duration属性 用于定义过渡效果持续的时间:

    transition-duration: time;
    

    默认值为0,常用单位是秒(s)或者毫秒(ms)。

  • transition-timing-function属性 用于规定过渡效果的速度曲线

    属性值描述
    linear指定以相同速度开始至结束的过渡效果,等同于cubic-bezier(0,0,1,1)
    ease指定以慢速开始,然后加快,最后慢慢结束的过渡效果,等同于cubic-bezier(0.25,0.1,0.25,0.1)
    ease-in指定以慢速开始,然后逐渐加快的过渡效果,等同于cubic-bezier(0.42,0,1,1)
    ease-out指定以慢速结束的过渡效果,等同于cubic-bezier(0,0,0.58,1)
    ease-in-out指定以慢速开始和结束的过渡效果,等同于cubic-bezier(0.42,0,0.58,1)
    cubic-bezier(n,n,n,n)定义用于加速或者减速的贝塞尔曲线的形状,它们的值在0-1之间

    "cubic-bezier(n,n,n,n)“中文译为"贝塞尔曲线”

  • transition-delay属性 用于规定过渡效果的开始时间

  transition-delay: time;

默认属性值为0,常用单位是秒(s)或者毫秒(ms)。属性值可以为正整数、负整数、0。当设置为负数时,过渡动作会从该时间点开始,之前的动作被截断;当设置为正数时,过渡动作会延时触发。

注:transition属性是复合属性,基本语法如下:

 transition: property duration time-function delay;

例如:

transition: border-radius 5s ease-in-out 2s;

如果使用transition简写属性设置多种过渡效果,需要为每个过渡属性集中指定所有值,并且使用逗号进行分离。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值