前端html+CSS

186 阅读4分钟

前端html+CSS学习重点

常犯点/易错点

1.!!如果发现代码没有出现我们想要的效果,先自身检查是不是这些问题导致得(多用调试)

1.控制playholder里面的样式用标签::playholder{}

2.调节图片垂直对齐方式:vertical-align: middle;

3.如果浮动上不去,注意宽度是不是不够

  1. 4. learfix::before,
    
       .clearfix::after {
    
    ​    content: "";
    
    ​    display: table;
    
       }
    
     
    
     .clearfix::after {
    
      clear: both;
    
     }
    

5.如果样式不生效,自己再重新用类名写过试试

6.如果两行内容位置不一样,看下是不是没有设置内外边距为0

7.p里面文字不靠边,注意设置 text-align对齐方式

8.页面里面ul设置 float-right,那么里面的li要设置float-left

9.如果行内块和行内文字无法通过 vertical-align或行高对齐,那就只能通过定位实现

10.如果浮动上去不能贴齐父盒子,那就检查下上一层的东西

11.如果标签没有生效,注意检查是否哪里的代码空格敲多了!!!!!

还有注意标点符号是不是英文的!!!!

12.上一行的代码出错,下一行的代码就显示不出来

  1. 看到内容与边框有距离,注意是在div设置padding,注意内容上下左右是否都有内边距

小图片可以用背景图片!!!!!注意区分

用::before里面放背景图片,如果显不出来,必须要设置宽高

2.写项目前得准备工作(很重要)

1.准备文件夹写项目的名称:里面放项目的images、.css、.html,必须都写英文

2.头部写

版心:wrapper(看里面的内容是否都是版心居中)

3.插入外联: link rel="stylesheet" href="

4.先放常用的样式,清楚浮动。清楚内外边距 清楚链接的下划线 清楚盒子撑开的自动计算方式

中文网站

​                    <html lang="zh-CN"><head>

​                  -charset="UTF-8" 规定网页的字符编码  

                                   <meta charset="UTF-8">


​                  

​                  ie(兼容性差) / edge 

                                   <meta http-equiv="X-UA-Compatible" content="IE=edge">


​                  宽度 = 设备宽度 : 移动端网页的时候要用 

                                   <meta name="viewport" content="width=device-width, initial-scale=1.0">    -->  


​                  

​                  



​          < meta:desc  描述 -->

               <meta name="description" content="京东JD.COM-">


​        < meta:kw  关键词-->

               <meta name="keywords" content="网上购物,网上商城,家电,手机,电脑,服装,居家,母婴,美妆,个护,食品,生鲜,京东"><title>京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!</title>

​        < link:favicon : 浏览器标题栏图标 -->

​        <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"

3.常用快捷键,需记

< ctrl+D向左复制 -->

< alt+shift+向下键 向下复制 -->

< ctrl+/ 注释快捷键 -->

< 快捷键:标签*3,可以快速生成几个标签-->

< 标签*3,可以生成有顺序的标签 a[heft="#"]{}*5-->

< 标签{内容}+标签{内容}可快速生成几个标签-->

< 父级标签>标签 如ul>l-->

< alt+shift+箭头上 多光标(同时复制多行) -->

1647314099588

第一节

标签

1.< 排版标签 br=换行 hr=水平分割线 p是段落标签 h是标题标签-->

2.< 文本格式化标签 加粗:b/strong 下划线:u/ins 删除线:s/del 倾斜线:i/em -->

3.< 媒体标签 图片:<img src="" alt(替换文本) ="" title(提示文本)=""-->

路径

4.< 绝对路径:网址或是图片在盘里的位置

相对路径: 同级目录 <img src="./图片"

​ 下级目录--<img src=./同级文件/目标图片

​ 上级目录:../上几级就写几个../ -->

5.< 音频标签 <aduio src="" controls(显示音频的控件) autoplay(自动播放) loop(循环播放)

视频标签<video src="" controls(显示音频的控件) autoplay(自动播放)可加muted静音播放 loop(循环播放)-->

6.< 链接标签 <a href="内部/外部的地址/未知时写# target(链接的打开方式)="_self/_blank">需要点击的文字 -->

第二节

列表

< 无序列表

  • 里面可以包含任何东西
清楚ul里面的小点点:list-style: none;-->

< 有序列表

  1. 里面可以包含任何东西
-->

< 自定义列表

-->

表格

< table表格 caption表格标题 tr行 th表格第一行单元格 td单元格 -->

< 表格属性 border边框 align水平对齐方式 -->

< 表格结构标签 thead表格头部 tbody表格主体 tfoot表格底部-->

< 合并单元格 rowspan跨行合并 colspan跨列合并 -->

表单

< 表单form input type=text文本 radio单选框 password密码框 checkbox多选框 file上传文件 submit提交 button一个按钮 reset重置 -->

< placeholder占位符,提示用户框里要输入什么 -->

< name有相同的name,选项只能选其中一项 name的作用,告诉后台提交的是什么数据-->

< value 给属性赋予名字 -->

< checked 默认选中哪项 -->

< multiple 上传多个文件 -->

< action 表单提交的地址 -->

< button可单独作为标签使用 -->

< select下拉菜单 selected 下拉菜单的默认选项 -->

< row行 col列 -->

< textarea文本域 -->

< labele标签 点击文本也能让按钮生效 有两种方法-->

< div 大盒子,独占一行 span小盒子,并排效果 -->

<  空格 > 大于号 < 小于号-->

第三节

< css得插入方式:内嵌式(小项目)、外联式(大项目)需要另外新建.css的文件, 在原html文件里面写 、行内式 -->

选择器

< 选择器得种类:标签选择器(直接在style写上标签得名字)、

​ 类选择器(在标签里面要加class="随便起名"在style写上(.随便起名)class里面可以放多个,要用空格隔开)、

​ id选择器在标签里面要加id="随便起名"在style写上(#随便起名))

​ 通配符选择器 *可以直接让所以的内容统一,一般用来清除内外边距 margin内边距 padding外边距 -->

字体

< 字体大小 font-size:80px;必须加单位--

​ 字体粗细 font-weight:400;正常700粗,不用单位

​ 字体样式 font-style:normal;正常 itial;倾斜

​ 字体家族:font-family:微软雅黑,黑体,sans-serif(无衬线字体)/如果没有当前字体,就顺延下一个,字体之间要用,隔开 -->

文本

< 文本缩进 texe-indent:2em

​ 文本对齐 text-align:left 可适用于:文本、span a input img

​ 文本修饰 text-decoration:line-through underline overline none-->

< 行高 line-height:50px或者1.5(指的倍数,不用加单位) -->

< margin: 0(上间距) auto -->

< font:style weight size/line-height family -->

第四节

选择器

​ 后代选择器 父级标签 后代标签{} div p{}

​ 子代选择器 父级标签>后代标签 div>p{}

​ 并集选择器 各种标签用逗号隔开 span,p,div{}

​ 交集选择器 各种标签连着写不要有空格 div.nav#text{}

​ 伪类选择器 如鼠标放置的各种状态 任何标签都可以设置伪类 div:hover

背景

背景颜色 background-color: #fff;

​ 背景图片 background-image: url("");括号里面最好加双引号

​ 背景平铺 background-repeat: no-repeat;

​ 背景位置 background-position: 0 0;-- 按照颜色、图片、平铺、位置写

​ background: #000 url("../01-案例/images/car.jpg") no-repeat center center;

​ 图片与背景图片的区别:图片不需要设置宽高,但是背景图片一定要给盒子设置宽高

元素分类

<块级元素 1.独占一行2.默认跟父级的宽度一样3.可以设置宽高

​ 例如:div p ul li dd dt form

​ 行内元素 例如:span 行内元素空间不够时会自动换行

​ 行内块元素:例如:input button

​ 相互转换:display: inline/inline-block;/block

​ 文本 行内/行内块要设置水平居中,直接在这些的父盒子设置-->

​ < 继承性:只能继承父级的部分文字属性 -->

第五节

优先级

< !important>>行内样式>id选择器>类选择器>标签选择器>通配符选择器>继承 -->

< 权重叠加计算:复合选择器中:第一级(行那样式的个数),第二级(id选择器的个数),第三级(类选择器的个数),第四级(标签选择器的个数) 先比较第一级数字,如果相同就往后推对比/当权重优先级一样时,得看层叠性,谁在后面按后面得为准-->

边框

< 边框 border:1px solid实线(dashed虚线/dotted点线) 颜色 -->

<边框的上下左右 border-top/bottom/left/right -->

C3盒

< 盒子的实际大小:内容+边框+内边距组成 -->

< 内边距的写法顺序:上、右、下、左/padding:10px 20px 30px 40px;

​ padding会撑大盒子,但不会改变内容-->

< 自动内减的公式,可以保证盒子不会被撑大:box-sizing: border-box; -->

< 外边距的写法顺序:上、右、下、左/padding:10px 20px 30px 40px; -->

< 外边距合并:两个兄弟盒子,垂直外边距谁大的用谁的 -->

< 外边距塌陷问题(给后代的盒子设置外边距,但是父盒子跟着一起变化的

​ 情况) 解决方案:1、给 父元素设置:border-top或者padding-top(分隔父 子元素的margin-top)

​ 2、给父元素设置overflow:hidden -->

< 行内元素垂直内外边距不生效时,需要设置行高:line-height -->

第六节

伪类选择器

< 结构伪类选择器:li:first-child/ last-child/nth-child/

​ nth-last-child 偶数:2n/ even 技术:2n+1/2n-1/odd -n+5找到前五个 n+5找到第五个往后-->

< 伪元素 :是行内元素,必须属性是'content'

ul::before{

​ content: '';里面还可以设置颜色,字体大小等}

::after 同时 -->

浮动

<浮动 float: left; -->

css书写顺序

< css书写顺序:1.定位、浮动/display

​ 2.盒子模型:margin border padding 宽高背景色

​ 3.文字样式-->

清楚浮动方法

1.< 清楚浮动 1.在父盒子的内容的外后一行添加

.txet{clear:both}

  1. 单伪元素清楚浮动

             2.  .one::after{
    
    ​     display: block;
    
    ​     content: '';
    
    ​     clear: both;
    
    ​     为了兼容性
    
    ​     height: 0;
    
    ​     visibility: hidden;
    

​ 3.双伪元素清楚浮动

  .one::before,

​     .one::after{

​     display: table;

​     content: '';}

​     .one::after{

​     clear: both;}

​ 4.给父级添加 overflow: hidden;-->

第八节

定位

​ < 定位 :position: fixed固定 static静态

​ absolute绝对; 相对于有定位设置得父元素或是浏览器移动,会脱标不占位置

​ relative相对 相对自己原来得位置移动,仍然占有原来得位置

​ 子绝父相 父级(爸爸爷爷都可以,选最近得有定位得那个)用相对,子级用绝对-->

​ <绝对定位后得盒子居中方法

 .box {

​          /* 1. 绝对定位的盒子不能使用左右margin auto居中 */position: absolute;

​          /* margin: 0 auto; *//* left: 50%, 整个盒子移动到浏览器中间偏右的位置 */left: 50%;

​          /* 把盒子向左侧移动: 自己宽度的一半 *//* margin-left: -150px; */top: 50%;

​          /* margin-top: -150px; *//* 位移: 自己宽度高度的一半 */transform: translate(-50%, -50%);

​          width: 400px;

​          height: 300px;

​          background-color: pink;

​        }

​ < /*

​ 默认情况下, 定位的盒子 后来者居上 ,

​ z-index:整数; 取值越大, 显示顺序越靠上, z-index的默认值是0

​ 注意: z-index必须配合定位才生效*/ -->

​ < /* 浏览器把行内和行内块标签当做文字处理,默认基线对齐 */

​ 解决方法:

​ /* vertical-align: middle; */ -->

鼠标类型

​ < /* 手型 */

​ /* cursor: pointer; */

​ /* 工字型, 表示可以复制 */

​ /* cursor: text; */

​ /* 十字型, 表示可以移动 */

​ cursor: move; -->

边框形状

​ < 给边框设置弧度: border-radius: 30px; -->

​ < 圆形边框 原边框必须是正方形 /* border-radius: 100px; */

​ /* 50% : 取盒子尺寸的一半 */ -->

​ < /* 胶囊状: 长方形, border-radius取值是高度的一半 */ -->

overflow

​ < /* 溢出隐藏 清除浮动*/

​ overflow: hidden;

​ /* 滚动: 无论内容是否超出都显示滚动条的位置 */

​ /* overflow: scroll; */

​ /* auto: 根据内容是否超出, 判断是否显示滚动条 */

​ /* overflow: auto; */ -->

​ < /* 占位隐藏 */

​ /* visibility: hidden; */

​ /* **** 不占位隐藏 */

​ display: none; -->

​ < opacity,会让整个标签都跟着一起变透明,取值0-1之间 -->

​ < 让表格得边框合并,并且一定要加在table 里面

​ border-collapse: collapse; -->

​ < /* 三角形

​ \1. 书写一个盒子

​ \2. 盒子添加四个方向的border, 颜色设置不同

​ \3. 保留其中一个方向的border, 其他方向颜色是transparent(透明)

​ */ -->

​ < 伪类选择器 /* 获得焦点的状态 */

​ /* 获得焦点: 把光标点到input里面; 失去焦点: 把光标从input里面拿出来 */

​ input:focus {

​ background-color: pink;} -->

​ < 可以直接通过属性来写css

​ input[type='text'] {

​ background-color: pink;

​ }

​ input[type="password"] {

​ background-color: skyblue;

​ }

​ 表示已password开头得都选肿

​ input[type^="password"] {

​ background-color: skyblue;

​ }

​ -->

​ <图片的垂直方式 /

​ img {

​ /* 浏览器把行内和行内块标签当做文字处理,默认基线对齐 */

​ /* vertical-align: middle;top/left/right */

​ display: block;

​ }-->

第九节

精灵图

​ < 精灵图的标签都用行内标签 都放在背景图片里面 span, b, i

​ background-image: url(./images/taobao.png);

​ /* 背景图位置属性: 改变背景图的位置 */

​ /* 水平方向位置 垂直方向的位置 */

​ /* 想要向左侧移动图片, 位置取负数; */

​ background-position: -3px 0; -->

​ < 可以用font-size:0 或是标签一排放来解决行内或是行内块之前的距离 -->

​ < 背景图片缩放/* background-size: 300px; */

​ /* background-size: 50%; */

​ /* 如果图的宽或高与盒子的尺寸相同了, 另一个方向停止缩放 -- 导致盒子可能有留白 */

​ background-size: contain;

​ /* 保证宽或高和盒子尺寸完全相同 , 导致图片显示不全 */

​ /* background-size: cover; */

​ /* 工作中, 图的比例和盒子的比例都是相同的, contain 和cover效果完全相同; */ -->

盒子阴影

​ < 盒子阴影-- box-shadow: 5px 10px 20px 10px green inset;

​ x方向 y方向 模糊程度 阴影扩大 内阴影

​ /* 注意: 外阴影, 不能添加outset, 添加了会导致属性报错 */ -->

​ < /* 过渡配合hover使用, 谁变化谁加过渡属性 */

    .box {

​        width: 200px;

​        height: 200px;

​        background-color: pink;

​        /* 宽度200, 悬停的时候宽度600, 花费1秒钟 *//* transition: width 1s, background-color 2s; *//* 如果变化的属性多, 直接写all,表示所有 */transition: all 1s;

​       }

  

​          .box:hover {

​             width: 600px;

    ​             background-color: red;}

​