暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

前端入门第3课

原创 李桥桉 2023-03-03
303

一、网页布局的核心

1、HTML:网页的骨架

2、CSS:美化网页

3、JS


二、HTML

1、概念:hypertext markup language超文本标记语言。

(1)“.txt”文件是纯文本;“.html”文件是超文本。

(2)超文本不仅仅是文本,还包含了更多的内容:图片、音频、视频、超链接...等其他资源。

(3)标记:组成网页的代码。一个标记就代表一个html元素。

(4)语法:

双标签:<标签名>要显示的内容

单标签:<标签名/>,例如:

(5)语言:代表人与计算机沟通的语言,也叫做计算机语言。

(6)网页的基本结构

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    欢迎来到本网站
</body>
</html>


:用作声明下面的代码以HTML5这个版本进行加载和解析。


:代表一个网页的根标签,唯一的。


lang="en"代表英文网站;lang="cn-zh"代表中文网站;


:网页的头部,默认是隐藏的,主要使用来配置网页的基本信息。


meta:网页的元信息,charset="UTF-8"告诉网页的编码格式是"UTF-8"


用于兼容IE的配置。


控制网页的视口模式。


hello world网页的标题。


description:网页的描述


keywords:网页的关键字,用于帮助搜索引擎优化SEO,优化搜索排名。


网页的主体,用于展示出所有需要显示出来的内容。


代码注释:Ctrl + /


三、标签——div

1、div是一个常用的布局标签,可以看做一个包裹内容的容器,也可以成为一个‘盒子’。

特点:

(1)默认是没有任何样式的

(2)高度由内容撑开

(3)宽度默认占满一行

作用:可以包裹文字、也可以包裹图片、甚至可以包裹其他标签,可以存放任意内容。


四、CSS

1、概念:Cascading Style Sheets样式表

CSS是一种样式表语言,用于描述html标签应该如何呈现的,用来美化html标签。

(1)层叠:CSS样式可以出现在多个地方,多个地方的样式可以同时作用在一个标签身上,相同的样式就会出现权重问题

(2)样式表:

①内部样式、外部样式、内链样式、

②浏览器默认样式、浏览器用户自定义样式


2、基础语法:

(1)内嵌样式(内链样式)

 <div style = "color:red;background-color: pink; height: 140px;">headerdiv>

color:文本的颜色

background-color:背景颜色

height:标签的高度

with:宽度

3、(1)内部样式:在head标签内定义一个style标签,用来包裹样式

<head>
    <style>
        div{    //此处的“div”叫选择器。
            color :green;
        }
    style>
head>

(2)外部样式表

需要在html文档的外部定义一个CSS结尾的文件

#wel{
color:green;

}

在html中还需要将外部css文件链接到文档内,在头部定义一个link标签去链接文件。


4、id选择器

id=""

5、CSS样式

①宽高:以px为单位的属性值

②以百分比%作为属性值,它参考的是父级标签的宽度。

复制某行代码快捷键:Alt+shift+↓



颜色:

①推荐W3school网站。

②英文单词、16进制的颜色值(#ffffff、#alalal)、RGB(RGB(157,41,55))


字体大小:
①以px为单位的数值,数字越大字号就越大

②浏览器默认字号16px

③浏览器默认最小字号12px


盒子居中:

①margin:0 auto;

②0,距离上边距0px;



6、class选择器

(1)class名可以多次使用

(2)同一个标签上可以拥有多个clss名

(3)class命名规范

①名字可以包含数字、英文、英文下划线“_”、“-”不能以数字、“-”开头。



选择器的权重

(1)行内样式>id>class>标签选择器

(2)样式表的优先级:行内样式表>内部样式表≈外部样式表(内部和外部按照就近原则作用样式)

(3)在同一个样式表中:id>class>标签选择器(在开发过程中,只用外部样式写css样式)

    <style>
        .header .header-top .logo{
            color:red;
        }
    style>
head>
<body>
    <div id="header">
        <div class="header-top">
            <div class="logo">
                logo
            div>
        div>
    div>
body>




7、外部链接

    <link rel="stylesheet" href="E:\\stylesheet1.css">

rel="stylesheet"是固定写法;href="E:\\stylesheet1.css"的“”中是css文件的绝对路径


8、h标签

  <h1>这是h1标签h1>
    <h2>这是h2标签h2>

(1)h1-h6数字越大字号越小,h4为默认字号14px

(2)独占一行

(3)都是粗体字


p标签-段落标签

(1)文字独占一行,一行排列不下时会自动换行。

(2)上下有默认的外边距

①代码

    <p>《王者荣耀》全部背景故事发生于架空世界“王者大陆”中。相关人物、地理、事件均为艺术创作,并非正史。若因观看王者故事对相关历史人物产生兴趣,建议查阅正史记载。p>运行

②运行效果

③缩小屏幕后的段落效果


9、span标签

(1)一般用来包裹简短的文字信息。

(2)标签之间是同行显示的

(3)不支持设置宽高

①span标签代码


②运行效果


10、超链接

   <a href="http://www.baidu.com">百度一下</a>

注意:写网络路径的时候需要将协议补全http或者https


   <a href="http://www.baidu.com" target="_blank">百度一下</a>
   <a href="http://www.baidu.com" target="_self">百度一下</a>
<!-- _blank在新窗口打开
   _self在当前窗口打开 -->


11、图片标签

   <img class="img" src="https://ossweb-img.qq.com/upload/webplat/info/yxzj/20230302/666551066703402.jpg" alt="图片备注:王者荣耀">
<img src="图片路径" alt="图片加载失败时图片备注" srcset="鼠标悬停图片上的提示">

特点:

(1)、同行显示

(2)、支持设置宽高


12、路径问题

(1)绝对路径

①网络路径:以http/https开头的资源路径

②本地路径:以盘符(C盘或其他盘)开头的路径

(2)相对路径

①从当前资源所在路径出发,去查找其他的资源

②“./”在当前文件所属的文件夹下去找

③“../”在当前文件所属文件夹的上一层目录去查找


13、标签的分类

标签一共分为3类:行级元素、块级元素、行内元素

(1)行级(行内)元素:

①标签a、span、em、i、strong、b、sub......

特点:

①同行显示,所有行级元素都可以同行显示

②不支持设置宽高,所有行级元素都不支持


(2)块级元素

标签:h1—h6、div、p、ul、li、dd、dt、table......

特点:

①独占一行,所有块级元素都是独占一行的

②支持修改宽高


(3)行内块元素

标签:img、input、button

特点:

①同行显示,可以和其他的行级元素以及行内块元素同行显示

②支持修改宽高


14、标签类型之间的切换

通过display的CSS属性来对标签类型进行切换

display:block;        块级
display:inline;        行级
display:inline-block;  行内块


15、margin:外边距

(1)作用:把当前元素和其他元素间隔开,这个可以存在于兄弟盒子之间的间隙,也可以存在于父子之间的间隙。

(2)语法:

.box1{
    width: 200px;
    height: 200px;
    background-color: pink;    margin-bottom: 20px;    margin-left: 40px;
    margin-top: 50px;
    margin-right: 20px; 
     margin: 20px 50px ; 
    /* 20代表上下,50代表左右 */ 
    margin: 20px 50px 30px 40px; 
    /* 分别代表顺时针方向的“上 右 下 左 ”*/
}

(3)margin的传递性

盒子与盒子是父子关系的时候,子盒子设置margin-top它会将这个距离传递给没有边界的父盒子。

    /* 设置一个属性,来解决传递过来的margin */
    overflow: hidden;

(4)margin的使用技巧

①实现盒子垂直居中:(父盒子的高度 - 子盒子的高度)/ 2 

②实现盒子的水平居中 margin:0 auto ;

注意:垂直方向的auto是没有效果的(可能因为页面可以无限往下延长)

(5)margin的重叠性

①兄弟盒子之间设置margin会重叠,只设置一个盒子就好

②margin可以设置负值

(6)margin的传递性


一、盒模型

1、html中所有的标签都可以看做是一个盒子,在css中盒模型通常是用来布局使用的。


·content:内容区域,通常来说我们设置的width和height就是设置的content的宽高

·padding:内边距,内容与边框的距离

·border:边框

·margin:外边距


2、边框border

·border边框的粗细、边框的样式、边框的颜色

·solid代表实线

·边框会撑大盒模型

·语法:

            /* border:边框的粗细、边框的样式、边框的颜色 */
            border-top: 20px solid red;

            border-width: 2px;
            border-style: solid;
            border-color: red;两条


·边的交汇处会呈45°斜线,可以用这个技巧绘三角形。把不需要的部分改成透明色(tans parent是透明色)


·语法

        padding: 20px 40px;      /* 两个值代表 上下 左右 */
            padding: 20px 40px 30px;
            /* 两个值代表 上 左右 下*/
            padding: 20px 40px 30px 10px;
            /* 四个值代表 上 右 下 左 (顺时针)*/



三、浮动

浮动的设计之初,是为了实现图文环绕。

借用浮动的特点来实现图文的同行排列。

1、浮动元素的特点

①浮动元素会和其他浮动元素在同一行显示,如果都为左浮动,所有元素都会从左到右一次排列。

②块级元素浮动之后还是一个块级元素,行级元素设置浮动之后会变成一个块级元素。

③元素浮动了之后,如果没有设置宽高,那么宽高由内容决定。

④浮动元素会脱离文档流:

·标准文档流:元素按照标准规范,从左往右,从上到下依次排列,块级元素会独占一行,行级元素同行显示。元素按照这个规范,那么元素就处于标准文档流当中。


·脱离文档流:浮于标准文档流之上,之前所占用的空间会被处于标准文档流中的元素所顶替。

⑤浮动元素的下方没有办法存文字,会被浮动元素挤开,默认是往浮动元素的右边去挤。


2、浮动元素带来的影响

影响:后续的标准文档流中的元素会被覆盖住

解决:

办法①清除浮动元素带来的影响,给受到影响的盒子设置一个属性:

clear both;

办法②让浮动元素在一个独立的空间浮动,外界的元素就不会受到影响。


办法③父盒子中的子盒子都设置成了浮动,而且父盒子没有设置高度时,父盒子的高度会塌陷。解决方案:给父盒子设置overflow:hidden;(推荐方案)


办法4、伪元素



3、属性选择器

概念:通过标签上的属性去访问对应标签

选择器例子例子描述
[属性名][class]选择带有class属性的所有元素
[属性名=属性值][class = box]选择带有class = box属性的所有元素,精准匹配
[属性名~=属性值][class ~= box]选择带有包含“box”一词的class属性的所有元素。必须为单独的完整的单词
[属性名|=属性值][class |= box]选择带有以“box”开头的class属性的所有元素。必须为完整单词或加连字符
[属性名^=属性值][class ^= box]选择其class属性值以“box”开头的所有元素,不必为完整单词
[属性名$=属性值][class $= box]选择其class属性值以“box”结尾的所有元素,不必为完整单词
[属性名*=属性值][class *= box]选择其class属性值包含“box”的所有元素,不必为完整的单词,模糊匹配

4、通配符

匹配网页上的所有标签,性能开销极大,不建议使用。

*{
    margin :0;
    padding : 0;
    color :red;
}


5、选择器权重计算

id、class、标签、伪类、伪元素、属性选择器、通配符、行内样式... ...

这些选择器都可以作用在同一个标签上,在解析css的时候浏览器内核就会计算选择器的权重,并且将最终的样式作用在标签上。


(1)权重的加法运算

· 行内样式:1000

· id :100

· class (类选择器)、伪类、属性:10

· 标签(元素)选择器、伪元素:1

· 通配符 :0

· 继承样式比通配符还低


·数一数有多少个该类型的选择器,权重就是把它们各自的权重加起来。

    <style>

        ul li[class="box"][id="box"]{              22
            color: blue;
        }

        ul li.box {                                2
            color: red !important;
        }

        #box{                                    100
            color: blueviolet;
        } 
/* 


(2)权重

通配符选择器权重是 0,0,0,0

标签选择器的权重是 0,0,0,1

类选择器的权重是    0,0,1,0  (伪元素)

id选择器使用权重是 0,1,0,0

   <style>

        ul li[class="box"][id="box"]{              【0,0,2,2】
            color: blue;
        }

        ul li.box {                                【0,0,1,2】
            color: red ;
        }

        #box{                                     【0,1,0,0】
            color: blueviolet;
        } 

.box.bo2.bo3.bo4.bo5.bo6.bo7.bo8.bo9.bo0.bo11{ 【0,0,11,0】 color: red; }

从高位往低位依次比较,若高位先出现非零数即停止后面低位的比较。


4、!important

将某一个样式的权重提高到最高,行内元素都干不过它。注意:少用,会影响代码的维护。

 ul li.box {
            color: red !important;
        }


5、概念:后代标签继承父辈标签的样式

主动继承:需要额外的操作才能继承样式

    <style>
        .father{
            width: 300px;
            height: 300px;
            border: 1px solid red;
        
        }
        .son{
            width: 200px;
            height: 200px;
            /* 继承父亲的边框样式 */
            border: inherit;
            /* border: 1px solid red;             有了上边inherit那句,就不用写这一句就继承了父亲的样式*/
        }
        button{
            cursor: pointer;
        }
    </style>


自动继承(被动继承):不需要额外的操作(跟文字相关的都能被动继承)

①font系列:font-size、font-family、font-weight等等

②文本样式系列:text-align、text-decoration、color、line-height等等

    <style>
        .father{
            width: 300px;
            height: 300px;
            border: 1px solid red;
            color: blue;
            font-size: 30px;
            font-weight: bold;
            text-align: center;
            line-height: 200px;
            /* 设置鼠标为小手 */
            cursor: pointer;
        }
        .son{
            width: 200px;
            height: 200px;
            /* 继承父亲的边框样式 */
            border: inherit;
            /* border: 1px solid red; */
        }

    </style>


6、按钮上悬浮的小手效果

        button{
            cursor: pointer;
        }


7、

当遇到文字和图片在垂直方向上居中对齐,可以调整图片以及文字的基线,vertical - align为 middle

vertical-align

   <style>
        .box{
            width: 290px;
            height: 53px;
            border: 1px solid red;
            margin: 100px auto;
            text-align: center;
        }
        .box img{
                /* 调整文字的基线 */
            vertical-align: middle;
        }
        .box span{
            /* 调整文字的基线 */
            vertical-align: middle;
        }
    </style>


只要不是块级元素,都可以用text-align:center居中对齐

















最后修改时间:2023-03-13 23:26:45
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论