【字节青训营】Day1 HTML+CSS笔记

一、HTML

HTML传达内容,而不传达样式!

1.定义

       HTML 指的是超文本标记语言 (Hyper Text Markup Language),是一种用于创建网页的标准标记语言。

      语义化:HTML中的元素、属性及属性值都拥有默认含义。这便于开发者阅读,维护和写出更优雅的代码的同时,让浏览器的爬虫和辅助技术更好的解析。

这是一段简单的HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
</html>

(1)<!doctype html> 用于标记版本,它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。

(2)<html> 用于告知浏览器其自身是一个 HTML 文档。
(3)<head> 用于定义文档的头部,它是所有头部元素的容器。其中包含页面的元数据(如编码、标题等)
(4)<body> 用于定义文档的主体,其中囊括了文档的所有内容。(如文本、超链接、图像、表格等)

2.常用标签

  • 标题 

            <h1>~<h6>
            <h1> 定义字体最大的标题。<h6> 定义字体最小的标题。

  • 列表

           有序列表 <ol> :有序列表每一项使用数字进行标记,每一项为 <li>
           无序列表 <ul> :无序列表中每一项前使用粗体圆点进行标记,每一项为 <li>。
           定义列表 <dl>
:定义列表是项目及其注释的组合,<dt>为标题 <dd>为内容。(定义列表的列表项内部可以使用段落、换行符、图片、链接以及其他列表等)

  • 链接(超链接)

           <a> 标签
          (1) 有两种使用 <a> 标签的方式:
                1.使用 href 属性:创建指向另一个文档的链接,例如:

<a href="url">text</a>

                2.使用 name 属性:创建文档内的书签,书签不会以任何特殊方式显示,它是不可见的。

<a name="label">书签</a>

            (2)target属性:用于定义被链接的文档在何处显示。

描述
_black响应显示在新窗口或选项卡中。
_self(默认值)响应显示在当前窗口中。
_parent响应显示在父框架中。
_top响应显示在窗口的整个 body 中。
framename响应显示在命名的 iframe 中。

  • 多媒体

           <img> 图像标签  :要在页面上显示图像,需要使用源(src),源属性的值是图像的 URL 地址。alt替换文本属性:用来为图像定义一串预备的可替换的文本(图片加载失败时展示)
           <audio> 音频标签:controls属性显示播放控件。
           <video> 视频标签:controls属性显示播放控件。

  • 表单

         <select> 元素定义下拉列表。
         <option> 元素定义待选择的选项。
         <textarea> 元素定义多行输入字段。
         <button> 元素定义可点击的按钮。
         <datalist> 元素为 <input> 元素规定预定义选项列表。
         <input>:不同的type属性,有不同的元素形态。

    type属性:

        <input type="text"> 定义供文本输入的单行输入字段。
        <input type="password"> 定义密码字段。
        <input type="submit"> 定义提交表单数据至表单处理程序的按钮。
        <input type="radio"> 定义单选按钮。
        <input type="checkbox"> 定义复选框。
        <input type="button> 定义按钮。
        <input type="number"> 用于应该包含数字值的输入字段。

  3.HTML DOM节点树

(1)DOM(Document Object Model文档对象模型)

      HTML DOM 是 HTML 的标准对象模型编程接口。它是关于如何获取、更改、添加或删除 HTML 元素的标准。

      当网页被加载时,浏览器会创建页面的文档对象模型。HTML DOM模型被结构化后,以树的形式呈现,如下图所示。

DOM HTML 树

二、CSS

1.CSS基础

  • 选择器Selector

         通配选择器:*
         元素选择器:元素名(例如:p{})
         id选择器:#
         类选择器:. 
         属性选择器:[](例如:input[type="password"]{})

  • 伪类:用于定义元素的特殊状态

          状态性、结构性
          状态性->a:link默认、a:visited、a:hover、a:active、:focus
          结构性->li:first-child、li:last-child

选择器例子例子描述
:activea:active选择活动的链接。
:checkedinput:checked选择每个被选中的 <input> 元素。
:disabledinput:disabled选择每个被禁用的 <input> 元素。
:enabledinput:enabled选择每个已启用的 <input> 元素。
:first-childp:first-child选择作为其父的首个子元素的每个 <p> 元素。
:focusinput:focus选择获得焦点的 <input> 元素。
:hovera:hover选择鼠标悬停其上的链接。
:invalidinput:invalid选择所有具有无效值的 <input> 元素。
lang(language)p:lang(it)选择每个 lang 属性值以 "it" 开头的 <p> 元素。
:last-childp:last-child选择作为其父的最后一个子元素的每个 <p> 元素。
:linka:link选择所有未被访问的链接。
:validinput:valid选择所有具有有效值的 <input> 元素。
:visiteda:visited选择所有已访问的链接。
  • 组合方式

          input:focus:同时满足
          nav a:后代选择器匹配属于指定元素后代的所有元素
          section>p:子选择器匹配属于指定元素子元素的所有元素
          h2~p:通用兄弟选择器匹配属于指定元素的同级元素的所有元素
          h2+p:相邻兄弟选择器匹配所有作为指定元素的相邻同级的元素。
          选择器组:body,h1,h2,h3{}(用,隔开)

  • 颜色

          RGB:#000000 或 rgb(0,0,0)
          HSL:色相 饱和度% 亮度%   hsl(20,50%,50%)
          (补充:alpha透明度:rgba(,,,) hsla(,,,))

  • 文本样式

         font-family:建议最后写上通用字体族,英文在中文前
         Web fonts:@font-face{src:url();}
         font-size:关键字、长度(px、em)、百分数(相对于父元素字体大小)
         font-style:正斜
         font-weight:粗细
         line-height:行间距(无单位是和字体大小的比例)
         text-align:文字对齐(left center right justify)
         spacing:间距(letter-spacing,word-spacing)
         text-indent:缩进
         text-decoration:文字修饰(下划线、删除线)
         white-space:空格(空白符)

  • CSS调试

        浏览器开发者模式

2.CSS原理

  • 选择器特异度(specificity)

        高优先级覆盖

  • 继承

        一些属性会继承父元素的计算值
         inherit:显式继承(*{box-sizing:inherit;}):不可继承属性变为可继承
        (补充:初始值(默认值):每个属性都有初始值(initial))

  • CSS求值过程

        DOM+样式->filtering(规则)->cascading(层叠:筛选声明值)->defaulting(没有声明,继承或初始值)->resolving(相对值转化绝对值)->formatting(计算值转换)->constraining(限制:小数到整数)->实际值

  • 布局layout:确定内容大小、位置

              1)常规流(行级、块级、表格、FlexBox、Grid布局)
              2)浮动
              3)绝对定位
        盒模型:
            margin、border、padding、width、height

CSS 框模型

 

        width:content box宽度(内容)
        height:content box高度(容器指定高度时、百分比才生效)
        padding:内边距(百分数相对于容器宽度)
        border:容器边框(border-wight/border-style/border-color)(solid/dotted)
        margin:外边距(百分数相对于容器宽度)(margin:auto水平居中)margin collapse:边距覆盖,折叠
   补充:
        boxing-sizing:border-box(宽、高变为边框宽高)
        overflow:内容溢出(visible、hidden、scroll)


常规流:
       1)块级block level box:不会并列摆放(例:body、article、div、section、p)
          display:block
       2)行级inline level box:可和其它行级盒子放在一行(width、height不适用)(例:span、em、strong)
          display:inline

      (补充:display:inline-block 本身行级,可以放在行盒中,可以设置宽高
                      display:none无排版,不展示)
      3)行级排版上下文IFC:只包含行级盒子的容器
        垂直方向布局vartical-align:middle;
      4)块级排版上下文BFC:从上到下摆放,垂直margin合并
      5)Flex Box:规定摆放流向、摆放顺序等.
         display:flex;
         flex-direction:摆放流向(row、row-reverse、column、column-reverse)
         justify-content:内部容器排列,水平对齐(flex-start、flex-end、center、space-between、space-around、space-evenly)
         align-items:垂直对齐(flex-start、strwtch、baseline......)
         align-self:(单个元素设置)、order(指定排列顺序)
         Flexibility弹性:flex-grow有伸展能力、flex-shrink有收缩能力、flex-basis基础长度)
     6)Grid布局:多个方向布局
        display:grid;生成块级grid容器
        grid-template:划分为网格(设置每个子元素占据哪些行和列)
          划分方法 例如:
        grid-template-columns:100px(30%) 100px 200px
        grid-template-rows:100px 100px(auto)

        grid line:网格线  grid area 网格区域
        grid-area:1/1/3/3;(占多个格子)

浮动:图文环绕效果
   7)float:left;right

绝对定位
   8)position(static、relative、fixed、absolute)
        position:relative:相对原本位置偏移,不影响其他
        absolute:脱离常规流(当做不存在),相对于父级最近的非static祖先定位,不影响流内元素定位
        fixed:相对于屏幕定位,脱离常规流(如:导航栏等)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值