Wray Lee
Articles35
Tags0
Categories0

Archive

web-basic

web-basic

Web-basic

Html

<p href="">text</p>

这个标签中

  • p为元素
  • href为属性
  • text为文本
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>
页面标题</title>
</head>
<body>

<h1>我的第一个标题</h1>

<p>我的第一个段落。</p>

</body>
</html>
<!--这是注释-->

速查

<!DOCTYPE html>
<html>
<head>
<title>文档标题</title>
</head>
<body>
可见文本...
</body>
</html>



<h1>最大的标题</h1>
<h2> . . . </h2>
<h3> . . . </h3>
<h4> . . . </h4>
<h5> . . . </h5>
<h6>最小的标题</h6>
 
<p>这是一个段落。</p>
<br> (换行)
<hr> (水平线)
<!-- 这是注释 -->


<!--文本格式化-->
<b>粗体文本</b>
<u>下划线文本</u>
<code>计算机代码</code>
<em>强调文本</em>
<i>斜体文本</i>
<kbd>键盘输入</kbd> 
<pre>预格式化文本</pre>
<small>更小的文本</small>
<strong>重要的文本</strong>
 
<abbr> (缩写)
<address> (联系信息)
<bdo> (文字方向)
<blockquote> (从另一个源引用的部分)
<cite> (工作的名称)
<del> (删除的文本)
<ins> (插入的文本)
<sub> (下标文本)
<sup> (上标文本)
    
    
<!--链接-->   
普通的链接:<a href="http://www.example.com/">链接文本</a>
图像链接: <a href="http://www.example.com/"><img src="URL" alt="替换文本"></a>
邮件链接: <a href="mailto:[email protected]">发送e-mail</a>
书签:
<a id="tips">提示部分</a>
<a href="#tips">跳到提示部分</a>
    
    

<!--图片-->
<img src="URL" alt="替换文本" height="42" width="42">
    
    
    
<!--样式-->
<style type="text/css">
h1 {color:red;}
p {color:blue;}
</style>
<div>文档中的块级元素</div>
<span>文档中的内联元素</span>
    
    
<!--列表-->
	<!--无序-->
<ul>
    <li>项目</li>
    <li>项目</li>
</ul>
    
	<!--有序-->    
<ol>
    <li>第一项</li>
    <li>第二项</li>
</ol> 

	<!--定义(缩进)-->
<dl>
  <dt>项目 1</dt>
    <dd>描述项目 1</dd>
  <dt>项目 2</dt>
    <dd>描述项目 2</dd>
</dl>   
    
    
    
<!--表格-->
<!-- tr(table row) th(table header) td(table data)-->
<table border="1">
  <tr>
    <th>表格标题</th>
    <th>表格标题</th>
  </tr>
  <tr>
    <td>表格数据</td>
    <td>表格数据</td>
  </tr>
</table>
    
    
<!--框架-->
<iframe src="demo_iframe.htm"></iframe>
    
<!--表单(forms)--> 
<form action="demo_form.php" method="post/get">
<input type="text" name="email" size="40" maxlength="50">
<input type="password">
<input type="checkbox" checked="checked">
<input type="radio" checked="checked">
<input type="submit" value="Send">
<input type="reset">
<input type="hidden">
<select>
<option>苹果</option>
<option selected="selected">香蕉</option>
<option>樱桃</option>
</select>
<textarea name="comment" rows="60" cols="20"></textarea>
 
</form> 
    
    
    
&lt; 等同于 <
&gt; 等同于 >
&#169; 等同于 ©

标签

单标签无内容,双标签有内容

标签内通用属性:id, class, style

元素

  • 块元素: 布局页面<div> <p> <h1>… <h6> <ul> <ol> <dl> <li> <table> <form>, 占据一定大小,手动设置大小(默认占一行),分多行排列
  • 行内元素: 网页内容<span> <a> <strong> <em><br> <input>, 根据内容设置大小,同行排列
  • 行内块元素(属于行内元素,横向排列但可以设置大小): <img>, 可以设置大小,同行排列

<!DOCTYPE>声明

不区分大小写

<!doctype html>
<!Doctype Html>
<!DOCTYPE html>
<!DOCTYPE HTML>
均可以

<head>

头部,可以添加<title>, <style>, <meta>, <link>, <script>, <noscript> 和 <base>

  • <title> 文档的标题
  • <base> 设置链接标签的默认链接
<head>
<base href="http://www.runoob.com/images/" target="_blank">
</head>
  • <link> 标记文档与外部资源关系,常用于链接引用css
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
  • <style> 可以直接通过css渲染html,此种方法为内联样式
<head>
    <style type="text/css">
    body{
    	background-color:yellow;
    }
    p {
    	color:blue
    }
    </style>
</head>
  • <meta> 定义基本元数据,会被解析单不会被渲染显示
<meta name="keywords" contents="">
<meta name="description" content="">
<meta name="author" content="">
<meta http-equiv="refresh" content="30">	#每30s刷新网页,可定义基本行为
<meta name="viewport" content="width=device-width, initial-scale=1.0"> #设定缩放比率
  • <h1>-<h6> 标题
  • <p></p> 段落
  • <a href=”” target=”{_self, _blank, _top, _parent}” ></a> 链接
  • <img src=”” width=”” height=”” alt=”图片未加载时的替代文本”> 图片

<div>

创建一个块

<span>

标记文本,便于样式化

<form>

button 定义可点击的按钮(通常与 JavaScript 一起使用来启动脚本)。
checkbox 定义复选框。
colorNew 定义拾色器。
dateNew 定义 date 控件(包括年、月、日,不包括时间)。
datetimeNew 定义 date 和 time 控件(包括年、月、日、时、分、秒、几分之一秒,基于 UTC 时区)。
datetime-localNew 定义 date 和 time 控件(包括年、月、日、时、分、秒、几分之一秒,不带时区)。
emailNew 定义用于 e-mail 地址的字段。
file 定义文件选择字段和 “浏览…” 按钮,供文件上传。
hidden 定义隐藏输入字段。
image 定义图像作为提交按钮。
monthNew 定义 month 和 year 控件(不带时区)。
numberNew 定义用于输入数字的字段。
password 定义密码字段(字段中的字符会被遮蔽)。
radio 定义单选按钮。
rangeNew 定义用于精确值不重要的输入数字的控件(比如 slider 控件)。
reset 定义重置按钮(重置所有的表单值为默认值)。
searchNew 定义用于输入搜索字符串的文本字段。
submit 定义提交按钮。
telNew 定义用于输入电话号码的字段。
text 默认。定义一个单行的文本字段(默认宽度为 20 个字符)。
timeNew 定义用于输入时间的控件(不带时区)。
urlNew 定义用于输入 URL 的字段。
weekNew 定义 week 和 year 控件(不带时区)。

表单,用于输入和交互

<form action="#">	<!--同submit行为对应-->
    <input type="text" placeholder="输入内容提示"><br>
    <label>邮箱:</label><br>
    <input type="email"><br>

<!--label中通过for和id绑定,方便进行样式化-->
    
    <label for="username">用户名:</label><br>
    <input type="text" id="username"><br>
    <label for="password">密码:</label><br>
    <input type="password" id="password"><br>
    <label>是否登录</label><br>
    
<!--radio单选框通过name实现单选,同一个name下为单选效果-->   
<!--多选框为checkbox,同一个name下为多选效果-->
    
    <input type="radio" name="login"><input type="radio" name="login"><br>
    <input type="checkbox" name="multiple">1<br>
    <input type="checkbox" name="multiple">2<br>
    <input type="checkbox" name="multiple">3<br>
    <input type="button" name="button" value=按钮><br>  
    <input type="submit" value="提交" onclick="{在此调用函数}">
</form>









1
2
3

Css

内部样式(标签内style=)内联样式(html中写入css代码)和外部样式(外部链接css代码)

优先级:内部>内联>外部

  • 内部
<p style="color: red;font-size: 16px;">
  • 内联

    <style>
        p {
        	color: red;
        	font-size: 16px;
        }
    </style>
  • 外部

<link rel="stylesheet" type="text/css" href="./css/style.css">
#./css/style.css
p {
    	color: red;
    	font-size: 16px;    
}

格式

选择器 {
    color: red;
    font-size: 16px;
}

选择器

id > 类 > 标签名

  • 元素选择器
标签名 {
    
}
  • 类选择器
.类名 {
    
}
  • ID选择器
#id {
    
}
  • 通用选择器(选择所有)
* {
    
}
  • 子元素选择器(父类中指定子类)
<div class="father">
    <p class="son">子元素选择器示例</p>
</div>
.father > .son {
    
}
  • 后代选择器(类似派生两次后的子类,不属于派生一次的子类,即派生中不会继承子元素选择器)(父类中指定标签)
    <div class="father">
        <p class="son">子元素选择器示例</p>
        <div>
            <p class>后代选择器示例</p>
        </div>
    </div>
.father p {
    
}
  • 相邻元素选择器
<h3></h3>
<p></p>
h3 + p {
    
}

/*   选择下方相邻的标签
块 + 行内 {

}


*/
  • 伪类选择器(实现交互效果)
#类名:hover{
    
}

#类名:{hover, first-child, nth-child(第n个子元素), :active}
选择器 示例 示例说明
:checked input:checked 选择所有选中的表单元素
:disabled input:disabled 选择所有禁用的表单元素
:empty p:empty 选择所有没有子元素的p元素
:enabled input:enabled 选择所有启用的表单元素
:first-of-type p:first-of-type 选择的每个 p 元素是其父元素的第一个 p 元素
:in-range input:in-range 选择元素指定范围内的值
:invalid input:invalid 选择所有无效的元素
:last-child p:last-child 选择所有p元素的最后一个子元素
:last-of-type p:last-of-type 选择每个p元素是其母元素的最后一个p元素
:not(selector) :not(p) 选择所有p以外的元素
:nth-child(n) p:nth-child(2) 选择所有 p 元素的父元素的第二个子元素
:nth-last-child(n) p:nth-last-child(2) 选择所有p元素倒数的第二个子元素
:nth-last-of-type(n) p:nth-last-of-type(2) 选择所有p元素倒数的第二个为p的子元素
:nth-of-type(n) p:nth-of-type(2) 选择所有p元素第二个为p的子元素
:only-of-type p:only-of-type 选择所有仅有一个子元素为p的元素
:only-child p:only-child 选择所有仅有一个子元素的p元素
:optional input:optional 选择没有”required”的元素属性
:out-of-range input:out-of-range 选择指定范围以外的值的元素属性
:read-only input:read-only 选择只读属性的元素属性
:read-write input:read-write 选择没有只读属性的元素属性
:required input:required 选择有”required”属性指定的元素属性
:root root 选择文档的根元素
:target #news:target 选择当前活动#news元素(点击URL包含锚的名字)
:valid input:valid 选择所有有效值的属性
:link a:link 选择所有未访问链接
:visited a:visited 选择所有访问过的链接
:active a:active 选择正在活动链接
:hover a:hover 把鼠标放在链接上的状态
:focus input:focus 选择元素输入后具有焦点
:first-letter p:first-letter 选择每个

元素的第一个字母

:first-line p:first-line 选择每个

元素的第一行

:first-child p:first-child 选择器匹配属于任意元素的第一个子元素的

元素

:before p:before 在每个

元素之前插入内容

:after p:after 在每个

元素之后插入内容

:lang(language) p:lang(it)

元素的lang属性选择一个开始值

  • 伪元素选择器(指定元素进行特殊处理)
/* 将p标签首字母大写并显示为红色 */
p::first-letter {
    color: red;
    font-size:xx-large
}
选择器 示例 示例说明
:link a:link 选择所有未访问链接
:visited a:visited 选择所有访问过的链接
:active a:active 选择正在活动链接
:hover a:hover 把鼠标放在链接上的状态
:focus input:focus 选择元素输入后具有焦点
:first-letter p:first-letter 选择每个

元素的第一个字母

:first-line p:first-line 选择每个

元素的第一行

:first-child p:first-child 选择器匹配属于任意元素的第一个子元素的

元素

:before p:before 在每个

元素之前插入内容

:after p:after 在每个

元素之后插入内容

:lang(language) p:lang(it)

元素的lang属性选择一个开始值

属性

复合属性和独立属性

<p style="font: bolder 509x 'Jet Brains mono';">复合属性一个属性设置多个样式</p>
<p style="line-height: 50px;"></p> <!--设置行间距-->
<div display: inline; background-color: ;></div> <!--块元素转换为行内元素-->
<div display: inline-block; background-color: ;></div> <!--块元素转换为行内块元素-->
<span display: block; background-color: ;></span> <!--行内元素转换为块元素-->


<!--
display:{inline, inline-block, block}
-->

盒子

边距大小值: 25px 50px 75px 100px

  • 内容 Cotent
  • 内边距 Padding
.class: {
    padding: 25px 25px;
}

.class1 {
    padding-bottom: 25px;
}
  • 边框 Border
/* 顺时针,对位替代(没有左用右代替,没有下用上代替) */

.class {
    border: 5px solid red;
    border-radius: 25px;	/* 创建圆角 */
    border-shadow: 10px 0 0 0 aqua;		
}

.class1 {
    background-color: red;
    border-style: solid dotted dashed double;
    border-width: 10px 0 0 0;
    border-color: bludviolet;
    border-collapse: collapse;		/* 合并边框 */
}

.class2 {
    border-left: 5px red solid;
}

dotted: 定义一个点线边框

dashed: 定义一个虚线边框

solid: 定义实线边框

double: 定义两个边框。 两个边框的宽度和 border-width 的值相同

groove: 定义3D沟槽边框。效果取决于边框的颜色值

ridge: 定义3D脊边框。效果取决于边框的颜色值

inset:定义一个3D的嵌入边框。效果取决于边框的颜色值

outset: 定义一个3D突出边框。 效果取决于边框的颜色值

  • 外边距 Margin
.class {
    margin: 0px;
    
}

.class1 {
    margin-top: 0px;
}

布局方式

  • 标准流 默认html布局
  • 浮动 只会在父元素内浮动
选择器 {
    float: left/right/none;
}

父元素无法无法容纳盒子时重新排列会出现坍塌

<div class=father>
    <div class=son1>son1</div>
    <div class=son2>son2</div>    
</div>
.father {
    /* width:150px */
}

.son1 {
    width: 100px;
    height: 100px;
    float:left;
}

.son2 {
    width: 100px;
    height: 100px;
    float: right;
}

通过清除浮动解决

/* 伪元素解决 */
.father::after {
	clear:both;    /* 对不想被浮动影响的内容使用 */
}

/* 父元素内解决 */
.father {
    overflow: hidden;
}
  • 定位
  • static
  • relative
  • fixed
  • absolute
  • sticky
.class {
	position: relative	/* 相对正常位置移动,保留原本所占空间,不会脱离文档流 */
    top: 
    left:
    right:
    bottom: 
}
.class {
    position: absolute; /* 会覆盖元素,不占据原本文档流空间,等于新加图层,相对父元素位置(无父元素则相对页面) */
}
.class {
    position: static; /* 默认值,没有更改定位 */
}
.class {
    position: fixed; /* 不占据文档流空间,新加图层,相对浏览器位置 */
}
  • Flebox 和 Grid 响应式布局

rem

/*
html {
    font-size: 20px;
}
*/

selector {
    width: 5rem;
    height: 5rem;		/* 根据倍率相对html中font-size来调整大小,为5倍 */
}

根据设备宽度自动更改font-size

function resetHtmlFontSize() {
    document.documentElement.style.fontSize = screen.width / 10 + 'px';
}
resetHtmlFontSize();

window.onresize = resetHtmlFontSize;

Flex

交叉轴为垂直于主轴的的轴线

selector {
    display: flex;
    justify-content: 
    align-items: stretch|center|flex-start(排列起点)|flex-end(排列终点)|baseline(主轴)|initial|inherit;
    align-content: stretch|center|flex-start(排列起点)|flex-end(排列终点)|baseline|initial|inherit;(相比items为整体)
}


justify-content: center;     /* 居中排列 */
justify-content: start;      /* 从行首开始排列 */
justify-content: end;        /* 从行尾开始排列 */
justify-content: flex-start; /* 从行首起始位置开始排列 */
justify-content: flex-end;   /* 从行尾位置开始排列 */
justify-content: left;       /* 一个挨一个在对齐容器得左边缘 */
justify-content: right;      /* 元素以容器右边缘为基准,一个挨着一个对齐, */


justify-content: space-between;  /* 均匀排列每个元素
                                   首个元素放置于起点,末尾元素放置于终点 */
justify-content: space-around;  /* 均匀排列每个元素
                                   每个元素周围分配相同的空间,两侧都有空间属于当前元素 */
justify-content: space-evenly;  /* 均匀排列每个元素
                                   每个元素之间的间隔相等 */
justify-content: stretch;       /* 均匀排列每个元素
                                   'auto'-sized 的元素会被拉伸以适应容器的大小 */
display:flex;
flex-flow:row-reverse wrap;   # 为flex-wrap,flex-direction复合
  • flex-basis: 伸缩基准值

    • number
    • auto
    • initial 为元素本来的属性,不会被父类更改
    • inherit 不从父类继承
  • flex-direction: 方向

    • row 左-右

    • row-reverse 右-左

    • column 上-下

    • column-reverse 下-上

    • initial 为元素本来的属性,不会被父类更改

    • inherit 不从父类继承

  • flex-wrap:换行

    • nowrap
    • wrap
    • wrap-reverse
    • initial 为元素本来的属性,不会被父类更改
    • inherit 不从父类继承
  • flex-grow: 设置相对其他元素放大的比率

    • number 倍数
    • initial
    • inherit
  • flex-shrink: 设置相对其他元素缩小的比率

    • number 倍数
    • initial
    • inherit

Javascript

  • 内部
<script></script>
  • 外部
<script src:"./tmp.js"></script>

变量

  • var 函数作用域
  • let 块作用域
  • const 块作用域

事件处理

  • onClick 点击
  • onMouseOver 鼠标经过
  • onMouseOut 鼠标移出
  • onChange 文本内容改变
  • onSelect 文本框选中
  • onFocus 光标聚集
  • onBlur 移开光标
<button onclick="click_event()">
    <script>
    function click_event() {
        
    }
    </script>
</button>

<!-- onclick(this)=function(this)可以将自己的元素传入function,在js中定义function是需要添加一个参数来接受实参

DOM

graph TD
	Document-->A[Root element: &lthtml&gt]-->B[element: &lthead&gt]-->C[element: &lttitle&gt]-->D[text: &quottitle&quot]
	A-->E[element: &ltbody&gt]-->F[element: &lta&gt]-->F'[attribute: &quothref&quot]
	F-->G[text: &quotlink&quot]
	E-->H[element: &lth1&gt]-->I[text: &quotheader&quot]

Document Object Model

网页加载时候会创建文档树,DOM提供了接口可以通过javascript对DOM进行操作

document.getElementById('id');
document.getElementByClassName('class');
element_id.innerHTML = '修改id选择器标签的文本内容';  //带有html标签,可以嵌入链接
element_class.innerText = '修改后的类选择文本'		//修改为为纯文本

DOM绑定事件

<button>button</button>
var button_element = document.getElementsByTagName('button')


button_element.onclick = function() {
    alert('通过DOM触发script')
}

button_element.addEventListener('click', function() {
    alert('通过addEventListner 触发')
})

DOM创建节点

  • appendChild() 添加新节点到指定节点
  • removeChild() 删除子节点
  • replaceChild() 替换子节点
  • insertBefore() 在指定子节点前插入如新子节点
  • createAttribute() 创建属性节点
  • createElement() 创建元素节点
  • createTextNode() 创建文本节点
  • getAttribute() 返回指定属性值
Author:Wray Lee
Link:http://blog.wray7.top/2024/04/09/Code/web-basic/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可