HTML,CSS复习

本文回顾了HTML中的锚点链接技巧,包括如何创建和定位,以及CSS的基础知识,如`border-collapse`合并边框、表单元素的区别、块级与行内元素特性、浮动与定位的使用、CSS书写顺序和选择器。此外,还介绍了flex布局、清除浮动和精灵图等内容。
摘要由CSDN通过智能技术生成

HTML,CSS复习

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

6.锚点链接:点我们点击链接,可以快速定位到页面中的某个位置.

●在链接文本的href属性中,设置属性值为#名字的形式,如< a href= “#two”>第2集

●找到目标位置标签,里面添加一个id属性=刚才的名字,如: < h3 id=“two” >第2集介绍</ h3>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

border-collapse: collapse;可以合并为一条边框

 table{
           width: 100%;
           border-collapse: collapse;

       }

form表单

在HTML中,一个完整的表单通常由表单域、表单控件(也称为表单元素)和提示信息3个部分构成。
在这里插入图片描述

2.页面中的表单元素很多,如何区别不同的表单元素?

答: name属性:当前input表单的名字,后台可以通过这个name属性找到这个表单。页面中的表单很多,name的主要作用就是用于区别不同的表单。

●name属性后面的值,是自定义的
在这里插入图片描述

type的属性为rdadio是单选按钮,而且name相同才能单选为checkbox是多选按钮

 <td><input type="radio" name="sex"><input type="radio" name="sex">
                </td>

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
常见的块元素有< h1>~< h6>、< p>、 < div>、 < ul>、 < o|>、 < li>等 ,其中< div>标签是最典型的块元素。

块级元素的特点:

①比较霸道,自己独占一行。

②度,宽度、外边距以及内边距都可以控制。

③宽度默认是容器(父级宽度)的100%。

④是一个容器及盒子,里面可以放行内或者块级元素。

常见的行内元素有< a>、< strong>、 < b>、 < em>、 < i>、 < del>、 < S>、< ins>、 < u>、 < span>等 ,其中< span>标签是最典型的行内元素。有的地方也将行内元素称为内联元素。

行内元素的特点:

①相邻行内元素在一行上,一行可以显示多个。

②高、宽直接设置是无效的。

③默认宽度就是它本身内容的宽度。

④行内元素只能容纳文本或其他行内元素。

在行内元素中有几个特殊的标签< img/>、 < input/>、 < td> ,它们同时具有块元素和行内元素的特点。有些资料称它们为行内块元素。

行内块元素的特点:

①和相邻行内元素(行内块)在-行上,但是他们之间会有空白缝隙。一行可以显示多个 (行内元素特点)。

②默认宽度就是它本身内容的宽度(行内元素特点)。

③高度,行高、外边距以及内边距都可以控制(块级元素特点)。

在这里插入图片描述
●元素可以继承父元素的样式 ( text- , font- , line-这些元素开头的可以继承,以及color属性)

在这里插入图片描述

padding和border会撑大盒子,margin不会撑开盒子,如果没有设置宽或高,padding也不会撑大盒子

外边距可以让块级盒子水平居中,但是必须满足两个条件:

①盒子必须指定了宽度(width)。

②盒子左右的外边距都设置为auto。

常见的写法,以下两种都可以:

●margin: auto;

●margin: 0 auto;

注意:以上方法是让块级元素水平居中,行内元素或者行内块元素水平居中给其父元素添加text-align:center即可。

盒子阴影

在这里插入图片描述
一般为:
box-shadow: 10px 10px 10px -4px rgba(0, 0, 0, .4);

浮动特性(重难点)

3.浮动元素会具有行内块元素特性。

任何元素都可以浮动。不管原先是什么模式的元素,添加浮动之后具有行内块元素相似的特性。

●如果块级盒子没有设置宽度 ,默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来决定

浮动的盒子中间是没有缝隙的,是紧挨着一起的,而行内块元素会有间距
在这里插入图片描述

浮动引起的高度塌陷问题

首先说一下高度塌陷
在这里插入图片描述
上图main的高度按理应该由三个子元素撑开,为300px
但是事实上是200px,因为元素b浮动了,如下图
在这里插入图片描述
所以需要清除浮动

清除浮动本质

●清除浮动的本质是清除浮动元素造成的影响

●如果父盒子本身有高度 ,则不需要清除浮动

●清除浮动之后,父级就会根据浮动的子盒子自动检测高度。父级有了高度, 就不会影响下面的标准流了

2… 一个元素浮动了,理论上其余的兄弟元素也要浮动。

一个盒子里面有多个子盒子,如果其中一个盒子浮动了,那么其他兄弟也应该浮动,以防止引起问题。浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

css书写顺序

在这里插入图片描述

定位种类

在这里插入图片描述

精灵图

在这里插入图片描述

overflow

在这里插入图片描述
4.绝对定位(固定定位)会完全压住盒子

浮动元素不同,只会压住它下面标准流的盒子,但是不会压住下面标准流盒子里面的文字(图片)(p,span标签)但是绝对定位(固定定位)会压住下面标准流所有的内容。

浮动之所以不会压住文字,因为浮动产生的目的最初是为了做文字环绕效果的。文字会围绕浮动元素

图片、表单和文字对齐

图片、表单都属于行内块元素,默认的vertical-align是基线对齐。

此时可以给图片、表单这些行内块元素的vertical-align属性设置为middle就可以让文字和图片垂直居中对挤了。
在这里插入图片描述

单行文本移除有省略号

在这里插入图片描述

图片底部空白间隙

在这里插入图片描述

H5新增的input属性

在这里插入图片描述

选择器

在这里插入图片描述
在这里插入图片描述

使用:父亲 儿子:nth-child(2){}代表选中父亲里的第二个儿子

 /* 选中第三个li */
        .uls li:nth-child(3){
            background-color: pink;
        }
        /* 选中偶数的li ,一般用于表格隔行变色*/
        .ttt li:nth-child(2n){
            background-color: red;
        }

属性选择器第二个(重点)

在这里插入图片描述

 input[ type="text"]{
            color: aqua;
        }
        input[type="password"]{
            color: red;
        }
        /* 选取有icon开头的button */
        button[class^="icon"]{
            background-color: pink;
            width: 50px;
            height: 30px;
        }

伪元素选择器默认是行内标签,而且必须有content属性

 /* 伪元素选择器默认是行内标签 */
        .box{
            width: 200px;
            height: 200px;
            background-color: pink;
        }
        .box::before{
            /* 必须有这个属性 */
            content: '我';
        }
        .box::after{
            content: '小猪佩奇';
        }

transform对行内元素无效,对行内块元素或者块元素才有作用

css3盒子模型

在这里插入图片描述

过渡

在这里插入图片描述

动画

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3D坐标系

在这里插入图片描述

transform系列

在这里插入图片描述

3Dtransform

在这里插入图片描述

在这里插入图片描述

x轴

在这里插入图片描述

y轴

在这里插入图片描述

去除img下方的空白(vertical-align:middle)——原理

在这里插入图片描述
也就是说img下方会无缘无故出现一个空隙。然后你发现,只要给img元素加上一个属性

vertical-align:middle 就解决了问题!!!
在这里插入图片描述
首先我们应该知道img是一个行内块元素,而行内块元素的默认对齐方式则是基线对其,下面通过我们熟悉的文字对齐来解释说明一下
在这里插入图片描述
像上图一样,图中文字的对其方式就是基线对齐,不过我们也会发现这样的话文字和底部会有一段距离
而图片就相当于是其中的x,他的最底部对齐的是基线,所以当line-height到达一定高度时下方的距离就会存在。
在这里插入图片描述

针对上面的问题有如下解决方法

1、而当你设 div的line-height:0 时也可以解决问题,或者font-size:0也是可以的
2、当然你设置图片的margin-bottom也可以解决,不过会影响你div中的布局
3、当我们设置vertical-align为top bottom middle时则使得其不再相对基线对其而是相对于顶部或中部对齐,这样就不会产生间距了,而一般布局都是居中对齐,所以用middle时较多

块元素的宽度如果不设置的话,默认为父元素的宽度(父元素宽度100%)。

块元素可以继承父元素的宽,但高不可以继承。

父级块元素的宽高可以不设置,被子元素撑开。

flex布局

2.1布局原理
flex是flexible Box的缩写,为"弹性布局" ,睐为状模型提供最大的灵活性,任何-个容器都可以指定为flex布局。

当我们为父盒子设为 flex布局以后,元素的float. clear 和vertical- align属性将失效。
●伸缩布局 =弹性布局=伸缩盒布局=弹性盒布局=flex布局

总结flex布局原理:
就是通过给父盒子添加flex属性,来控制子盒子的位置和排列方式

常见父项属性

以下由6个属性是对父元素设置的

●flex-direction :设置主轴的方向

●justify-content :设置主轴上的子元素排列方式

●flex-wrap :设置子元素是否换行

●align-content :设置侧轴上的子元素的排列方式(多行)

●align-items :设置侧轴上的子元素排列方式(单行)

●flex- flow :复合属性,相当于同时设置了flex-direction和flex wrap
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

flex布局子项常见属性

1.flex属性
flex:1实际代表的是三个属性的简写
flex-grow是用来增大盒子的,比如,当父盒子的宽度大于子盒子的宽度,父盒子的剩余空间可以利用flex-grow来设置子盒子增大的占比,默认为0,即 即使存在剩余空间,也不会放大;
flex-shrink用来设置子盒子超过父盒子的宽度后,超出部分进行缩小的取值比例, 默认为1,即 如果空间不足,该项目将缩小;
flex-basis是用来设置盒子的基准宽度,并且basis和width同时存在basis会把width干掉, 默认值为auto,即 项目原本大小;
所以flex属性的默认值为:0 1 auto (不放大会缩小)

flex:n;代表
flex-grow:n;
flex-shrink:1;
flex-basis:0%;

flex-grow:1

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      width: 500px;
      height: 100px;
      background-color: hotpink;
      display: flex;
    }
 
    .box div {
      width: 100px;
    }
 
    .box div:nth-child(1) {
      flex-grow: 1;
    }
 
    .box div:nth-child(2) {
      flex-grow: 3;
    }
    .box div:nth-child(3) {
      flex-grow: 1;
    }
 
 
  </style>
</head>
<body>
  <div class="box">
    <div>1</div>
    <div>2</div>
    <div>3</div>
  </div>
</body>
</html>

父盒子剩余空间的200

第一个盒子扩大1/5,100+40 = 140
第二个盒子扩大3/5,100+120=220
第三个盒子扩大1/5,100+40= 140

flex-shrink:1

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      width: 500px;
      height: 100px;
      background-color: hotpink;
      display: flex;
    }
 
    .box div {
      width: 200px;
    }
 
    .box div:nth-child(1) {
      flex-shrink: 1;
    }
 
    .box div:nth-child(2) {
      flex-shrink: 2;
    }
 
    .box div:nth-child(3) {
      flex-shrink: 1;
    }
  </style>
</head>
<body>
  <div class="box">
    <div>1</div>
    <div>2</div>
    <div>3</div>
  </div>
</body>
</html>

父盒子的宽度为500,子盒子的宽度为600,超出100,超出的100,如何进行比例缩放

第一个盒子:1/4 * 100 = 25 最终第一个盒子200-25=175
第二个盒子:2/4 * 100 = 50 最终第二个盒子200-50 = 150
第三个盒子:1/4 * 100 = 25 最终第一个盒子200-25=175

flex-basis:0%

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      width: 500px;
      height: 100px;
      background-color: hotpink;
      display: flex;
    }
 
    .box div {
      width: 100px;
    }
 
    .box div:nth-child(1) {
      flex-basis: 50px;
    }
 
    .box div:nth-child(2) {
      flex-basis: 100px;
    }
 
    .box div:nth-child(3) {
      flex-basis: 50px;
    }
  </style>
</head>
<body>
  <div class="box">
    <div>1</div>
    <div>2</div>
    <div>3</div>
  </div>
</body>
</html>

这样width的宽度就已经被flex-basis:0%干掉了

2.order属性
在这里插入图片描述

flex布局不管是行内元素还是块级元素都可以用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值