【前端】html+js+css开发入门超详细介绍

2023-11-16

一 HTML

  • js有2个运行环境,浏览器和OS,浏览器用于写web,OS用于node.js等服务端编程
  • 我们写的HTML页面,被浏览器加载,渲染成DOM树,然后浏览器提供了API(也是js的函数)可以操作DOM树(比如get,加节点,删节点,换节点位置等),每当DOM树变动,浏览器会重新渲染一下,这样我们就看到新的页面了
  • 我们先写基础的静态页(用HTML+CSS+JS搭建好),然后通过JS来控制页面动起来(具体是以下两种方式)
    • 然后用JS调浏览器的API来控制(比如调后端接口拿返回值,改变HTML对应的DOM树上的值,然后页面上的数字就变了,就实现了点击按钮页面动态变化的效果)
    • 也可以调CSS来改变HTML对应的DOM树的样式(如颜色,字体等),通过$0.style.xx = red即可

1.1 第一个页面

(base)  ~/go/src/codes/fe/testurl   master  tree
.
├── images
│   └── image-filename.jpg
├── index.html
├── scripts
└── styles
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>我在他乡挺好的</title>
</head>

<body>
    <img src="images/image-filename.jpg" alt="测试图片">
</body>

</html>

在这里插入图片描述

1.2 所有标签都来一遍

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>我在他乡挺好的</title>
</head>

<body>
    <img src="images/image-filename.jpg" alt="测试图片">
    <p class="editor-note">我的猫脾气爆:)</p>
    <p>我的猫咪脾气<strong>暴躁</strong>:)</p>
    <h1>主标题</h1>
    <h2>顶层标题</h2>
    <h3>子标题</h3>
    <h4>次子标题</h4>
    <p>这是一个段落</p>
    <ul>
        <li>技术人员</li>
        <li>思考着</li>
        <li>建造者</li>
    </ul>
    <p>我们致力于</p>
    <a href="https://www.mozilla.org/zh-CN/about/manifesto/">Mozilla 宣言</a>
</body>

</html>
  • 用vscode的话, Alt+B即可快速浏览html文件(用的是open in browser插件)
    在这里插入图片描述

1.3 超链接

试验

通过<p>可以把超链接放在一行里

    <p>我创建了一个指向
        <a href="https://www.mozilla.org/zh-CN/">Mozilla 主页</a>
        的超链接。
    </p>

在这里插入图片描述

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>主页</title>
</head>

<body>
  <!-- 将导航栏置于此处 -->
  <ul>
    <li>主页</li>
    <li><a href=pictures.html>图片</a></li>
    <li><a href=projects.html>项目</a></li>
    <li><a href=social.html>社交</a></li>
    <li><a href="https://www.baidu.com">百度一下 </a> </li>
    <li><a href="https://www.sougou.com">
        <img src="images/image1.jpg" alt="跳转到搜狗一下">
      </a></li>
  </ul>
  <h1>主页</h1>

  <p>欢迎访问我的主页</p>
</body>

</html>

在这里插入图片描述

在这里插入图片描述

1.4 发邮件

    <li>
      <a href="mailto:abc@mozilla.com">
        向tom发邮件
      </a>
    </li>

在这里插入图片描述

1.5 description list描述列表

用来讲述一个概念,然后对该概念做说明在这里插入图片描述

    <dl>
      <dt>培根</dt>
      <dd>是一种吃的</dd>
      <dt>咖啡</dt>
      <dd>好吃</dd>
      <dd>又好喝</dd>
    </dl>

1.6 blockquote块引用

    <p>The <strong>HTML <code>&lt;blockquote&gt;</code> Element</strong> (or <em>HTML Block
        Quotation Element</em>) indicates that the enclosed text is an extended quotation.</p>

    <blockquote>
      <p>The <strong>HTML <code>&lt;blockquote&gt;</code> Element</strong> (or <em>HTML Block
          Quotation Element</em>) indicates that the enclosed text is an extended quotation.</p>
    </blockquote>

在这里插入图片描述

1.7 linequote

行内引用

    <p>The quote element — <code>&lt;q&gt;</code> — is <q
        cite="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/q">intended
        for short quotations that don't require paragraph breaks.</q></p>

在这里插入图片描述

1.8 address

  <address>
    <p>Page written by <a href="../authors/chris-mills/">Chris Mills</a>.</p>
  </address>

1.9 上下标

<p>咖啡因的化学方程式是 C<sub>8</sub>H<sub>10</sub>N<sub>4</sub>O<sub>2</sub></p>
<p>如果 x<sup>2</sup> 的值为 9,那么 x 的值必为 3 或 -3。</p>

1.10 排版布局

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>二次元俱乐部</title>
    <link href="https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300|Sonsie+One" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css?family=ZCOOL+KuaiLe" rel="stylesheet">
    <link href="style.css" rel="stylesheet">
</head>

<body>
    <header>
        <!-- 本站所有网页的统一主标题 -->
        <h1>聆听电子天籁之音</h1>
    </header>

    <nav>
        <!-- 本站统一的导航栏 -->
        <ul>
            <li><a href="#">主页</a></li>
            <!-- 共n个导航栏项目,省略…… -->
        </ul>

        <form>
            <!-- 搜索栏是站点内导航的一个非线性的方式。 -->
            <input type="search" name="q" placeholder="要搜索的内容">
            <input type="submit" value="搜索">
        </form>
    </nav>

    <main>
        <!-- 网页主体内容 -->
        <article>
            <!-- 此处包含一个 article(一篇文章),内容略…… -->
        </article>

        <aside>
            <!-- 侧边栏在主内容右侧 -->
            <h2>相关链接</h2>
            <ul>
                <li><a href="#">这是一个超链接</a></li>
                <!-- 侧边栏有n个超链接,略略略…… -->
            </ul>
        </aside>
    </main>

    <footer>
        <!-- 本站所有网页的统一页脚 -->
        <p>© 2050 某某保留所有权利</p>
    </footer>
</body>

</html>
/* 一般设置 */

html,
body {
  margin: 0;
  padding: 0;
}

html {
  font-size: 10px;
  background-color: #a9a9a9;
}

body {
  width: 70%;
  margin: 0 auto;
}

/* 文字排版 */

h1,
h2,
h3 {
  font-family: 'Sonsie One', 'ZCOOL KuaiLe', cursive;
  color: #2a2a2a;
}

p,
input,
li {
  font-family: 'Open Sans Condensed', sans-serif;
  color: #2a2a2a;
}

h1 {
  font-size: 4rem;
  text-align: center;
  color: white;
  text-shadow: 2px 2px 10px black;
}

h2 {
  font-size: 3rem;
  text-align: center;
}

h3 {
  font-size: 2.2rem;
}

p,
li {
  font-size: 1.6rem;
  line-height: 1.5;
}

/* 标题布局 */

nav,
article,
aside,
footer {
  background-color: white;
  padding: 1%;
}

nav {
  height: 50px;
  background-color: #66ccff;
  display: flex;
  margin-bottom: 10px;
}

nav ul {
  padding: 0;
  list-style-type: none;
  flex: 2;
  display: flex;
}

nav li {
  display: inline;
  text-align: center;
  flex: 1;
}

nav a {
  display: inline-block;
  font-size: 2rem;
  text-transform: uppercase;
  text-decoration: none;
  color: black;
  transition-duration: 200ms;
}

nav form {
  flex: 1;
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 2em;
}

nav a:hover {
  color: white;
  text-shadow: 0 0 10px wheat;
  transition-duration: 200ms;
}

input {
  font-size: 1.6rem;
  height: 32px;
}

input[type="search"] {
  flex: 3;
}

input[type="submit"] {
  flex: 1;
  margin-left: 1rem;
  background: #333;
  border: 0;
  color: white;
}

/* 主体布局 */

main {
  display: flex;
}

article {
  flex: 4;
}

aside {
  flex: 2;
  margin-left: 10px;
  background-color: #66ccff;
}

aside li {
  padding-bottom: 10px;
}

footer {
  margin-top: 10px;
}

在这里插入图片描述
排版验证网站https://validator.w3.org/

1.11 标记信件练习

https://developer.mozilla.org/zh-CN/docs/learn/HTML/Introduction_to_HTML/Marking_up_a_letter

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="author" content="李雷">
    <title>标记信件试验</title>
    <link href="y.css" rel="stylesheet">
</head>

<body>
    <address class="sender-column">
        中国北京市门头沟区,102300<br>
        纽臂大学 纽臂科学院<br>
        <strong>李雷 教授</strong>
        <strong>联系电话:123-456-7890</strong><br>
        <strong>电子邮件:no_reply@example.com</strong><br>
    </address>

    <address>
        <strong>韩梅梅 女士</strong>
        <br>中国海南省三亚市亚龙湾
    </address>

    <p>
        <h1>回复: 韩梅梅学位申请</h1>
        <p>亲爱的韩同学:</p>
        <p>感谢你申请纽臂大学科学院的哲学博士学位课程,下面我将就你的问题依次做出解答。</p>
    </p>

    <p>
        <h2>开学日期</h2>

        <p>欢迎你在任意时间来校学习,但在学期开始时来校更理想,每学期开学时间如下:</p>

        <ul>
            <li>第一学期:<time datetime="2019-09-09">2019 年 9 月 9 日</time></li>
            <li>第二学期:<time datetime="2020-01-15">2020 年 1 月 15 日</time></li>
            <li>第三学期:<time datetime="2020-05-02">2020 年 5 月 2 日</time></li>
        </ul>

        <p>请告诉我你是否愿意在学期开始时来校,并告知你选择的学期。</p>

        <br>你可以在我们的网站上找到更多关于<a href="https://example.com" title="纽臂大学大事时间表">学校重要日期</a>的信息。</br>
    </p>

    <p>
        <h2>学习科目</h2>
        纽臂科学院本着兼容并蓄的原则,课题涉及一些科技领域。欢迎有才智、态度专注的研究人员参加,也欢迎符合我们价值观的朋友加入。我们最感兴趣的课题如下(按优先度排序):
        <ol>
            <li>把水(H<sub>2</sub>O)转变为酒的方法,以及白藜芦醇(C<sub>14</sub>H<sub>12</sub>O<sub>3</sub>)对健康的帮助作用。</li>
            <li> 测量室温 30°C(86°F)时,观众人数呈指数级增加对放克贝斯手表演的影响(3 × 10<sup>3</sup> &gt; 3 × 10<sup>4</sup> 效应)。</li>
            <li> 使用 <abbr title="超文本标记语言">HTML</abbr><abbr title="层叠样式表">CSS</abbr> 构建乐谱。</li>
        </ol>
        <br> 请针对上述课题提供更多的信息。包括研究时长、所需资源,以及其它未尽事宜,谢谢</br>
    </p>

    <p>
        <h2>异域舞蹈</h2>
        <p>你说的没错!异域部落舞蹈是我博士后研究项目的一部分。为了回答你的问题,我在下面列出我个人最喜欢的舞蹈种类和相关介绍:</p>
        <dl>
            <dt>波利尼西亚小鸡舞</dt>
            <dd>一种古老、神秘但影响广泛的舞蹈,可追溯至公元前 300 年,整个村庄围绕着一个小鸡形状的圈跳舞,祈祷牲畜肥美。</dd>
            <dt>冰岛布尔曳步舞</dt>
            <dd>在冰岛人学会用火取暖之前,他们之间流行着这种舞蹈,舞蹈时人们在地上拥成一个圈,用极小极快的动作晃动身体。我有一个学生说冰岛曳步舞是现代甩臀舞的鼻祖。</dd>
            <dt>北极机器人舞</dt>
            <dd>一个有趣的历史误传,二十世纪六十年代的英国探险者宣称发现了一种像“机器人跳舞”的舞蹈,这种舞蹈动作僵硬,流行于加拿大和阿拉斯加北部地区。后来人们发现这里的居民是因为天气太冷了才做出这样的动作。</dd>
        </dl>

        <p>
            更多信息请查看我的 <a href="https://example.com" title="李雷的异域舞蹈研究站点">异域舞蹈研究</a>网页。
        </p>
    </p>

    <p>李雷 教授</p>
    <p>纽臂大学校训:<q>人人皆可纽臂</q> —— <cite>诸葛中天传</cite></p>
</body>

</html>

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

1.12 观鸟网排版练习

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>观鸟网</title>
  <link href="https://fonts.googleapis.com/css?family=Long+Cang|Noto+Sans+SC:300" rel="stylesheet">
  <link href="style.css" rel="stylesheet">

  <!--[if lt IE 9]>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.js"></script>
    <![endif]-->
</head>

<body>

  <header>
    <meta charset="utf-8">
    <h1>观鸟网</h1>
    <img src="dove.png" alt="一张鸽子剪影图片">

    <nav>
      <ul>
        <li><span>主页</span></li>
        <li><a href="#">开始</a></li>
        <li><a href="#">图片</a></li>
        <li><a href="#">设备</a></li>
        <li><a href="#">论坛</a></li>
      </ul>
    </nav>
  </header>


  <main>
    <article>
      <h2>欢迎</h2>

      <p>欢迎访问观鸟网虚拟站点。如果这是一个真实的网站,那么它就是观鸟爱好者的理想聚集地。无论你是一名期望学习观鸟知识的新手,还是一位希望分享体会、经验和图片的观鸟老手。</p>
      <p>时不我待!赶快带齐装备,关上电脑,去拥抱美丽的大自然吧!</p>
    </article>

    <aside>
      <h2>收藏照片</h2>
      <a href="favorite-1.jpg"><img src="favorite-1_th.jpg" alt="一只体型小巧的鸟,羽毛蓝绿色,爪黑白相间,黑色的喙细且锋利。点击缩略图查看完整照片。"></a>
      <a href="favorite-2.jpg"><img src="favorite-2_th.jpg" alt="一只美丽的孔雀的上半身图片,它的颈上覆盖蓝色的羽毛,有浅色的喙和蓝色的冠。点击缩略图查看完整照片。"></a>
      <a href="favorite-3.jpg"><img src="favorite-3_th.jpg" alt="一只大鸟的上半身图片,羽毛白色,浅色的喙细长而弯曲。点击缩略图查看完整照片。"></a>
      <a href="favorite-4.jpg"><img src="favorite-4_th.jpg"
          alt="一只成年鹈鹕,羽毛大多为白色,背部和腹部有少许黑色羽毛,又长又直的喙呈黄色,喙的下方有一个喉囊可以暂时储存食物。点击缩略图查看完整照片。"></a>
    </aside>
  </main>

  <footer>
    <p>本虚拟站点遵守 CC0 协议,所有内容均可任意修改和复用。原始版本由 Chris Mills 于 2016 年编写。Roy Tian 于 2019 年汉化。</p>
    <p><a href="http://game-icons.net/lorc/originals/dove.html">鸽子图标</a> 由 Lorc 绘制。</p>
  </footer>

</body>

</html>

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

1.13 图片

1.13.1 img

在这里插入图片描述

1.13.2 figure

<div class="figure">
  <img src="/images/dinosaur_small.jpg"
     alt="一只恐龙头部和躯干的骨架,它有一个巨大的头,长着锋利的牙齿。"
     width="400"
     height="341">
  <p>曼彻斯特大学博物馆展出的一只霸王龙的化石</p>
</div>

1.13.3 css背景图

p {
  background-image: url("images/dinosaur.jpg");
}

1.14 播放器video与audio

    <video controls width="400" height="400" autoplay loop muted poster="images/image1.jpg">
        <source src="videos/rabbit320.mp4" type="video/mp4">
        <source src="videos/rabbit320.webm" type="video/webm">
        <p>你的浏览器不支持H5视频,可点击<a href="video/rabbit320.mp4">此链接</a>观看</p>
    </video>
    <audio controls>
        <source src="audios/viper.mp3" type="audio/mp3">
        <source src="audios/viper.ogg" type="audio/ogg">
        <p>你的浏览器不支持H5视频,可点击<a href="audios/viper.mp3">此链接</a>观看</p>
    </audio>

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

1.15 iframe

<iframe 
	width="560" 
	height="315" 
	src="https://www.youtube.com/embed/iocJc342Q8s" 
	title="YouTube video player" 
	frameborder="0" 
	allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" 
	allowfullscreen>
</iframe>

在这里插入图片描述

1.16 svg

    <svg version="1.1" baseProfile="full" width="300" height="200" xmlns="http://www.w3.org/2000/svg">
        <rect width="100%" height="100%" fill="black" />
        <circle cx="150" cy="100" r="90" fill="blue" />
    </svg>
    <svg width="100%" height="100%">
        <rect width="100%" height="100%" fill="red" />
        <circle cx="100%" cy="100%" r="150" fill="green" stroke="black" />
        <polygon points="120,0 240,225 0,225" fill="green" />
        <text x="50" y="100" font-family="Verdana" font-size="55" fill="yellow" stroke="black" stroke-width="2">
            Hello!
        </text>
    </svg>

在这里插入图片描述

1.17 图片

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Mozilla 宣传主页</title>
  <link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC:400,700" rel="stylesheet">
  <link href="style.css" rel="stylesheet">
</head>

<body>
  <header>
    <h1>Mozilla</h1>
    <!-- 插入 <img> 元素,链接至较小的 Firefox 标志。 -->
    <img src="originals/firefox_logo-only_RGB.png" alt="Firefox logo">
  </header>

  <main>
    <article>
      <iframe width="400" height="255" src="https://www.bilibili.com/video/BV1rs411d7hC?p=2" scrolling="no"
        frameborder="no" framespacing="0" allowfullscreen="true">
      </iframe>
      <!-- 插入来自 Bilibili 的 <iframe> 元素 -->

      <h2>自由网络 尽情驰骋</h2>

      <p>Mozilla 是一个全球社区,这里聚集着来自五湖四海的 技术人员、思考者、建造者。我们致力于让 Internet
        保持活力,保持畅通,人人皆可贡献,人人皆可创造。我们坚信:开放平台的协作对于人的发展至关重要,也决定着我们共同的未来。</p>

      <p>更多精彩信息,敬请点击下方图片。<a href="https://www.flickr.com/photos/mathiasappel/21675551065/">小熊猫照片</a>由 Mathias Appel 拍摄
      </p>
    </article>

    <div class="further-info">
      <a href="https://www.mozilla.org/zh-CN/firefox/new/">
        <img srcset="images/firefox-logo120.png 120w,
                       images/firefox-logo400.png 400w" sizes="(max-width: 500px) 120px,
                      400px" src="images/firefox-logo400.png" alt="下载 Firefox">
      </a>
      <a href="https://www.mozilla.org/">
        <img srcset="images/mozilla-dinosaur120.png 120w,
                       images/mozilla-dinosaur400.png 400w" sizes="(max-width: 500px) 120px,
                      400px" src="images/mozilla-dinosaur400.png" alt="Mozilla 更多信息">
      </a>
      <a href="https://addons.mozilla.org/zh-CN/firefox/">
        <img srcset="images/firefox-addons120.jpg 120w,
                       images/firefox-addons400.jpg 400w" sizes="(max-width: 500px) 120px,
                      400px" src="images/firefox-addons400.jpg" alt="使用扩展使 Firefox 更加个性化">
      </a>
      <a href="https://developer.mozilla.org/zh-CN/">
        <img src="images/mdn.svg" alt="访问 MDN 学习 Web 开发">
      </a>
      <div class="clearfix"></div>
    </div>

    <div class="red-panda">
      <!-- 插入照片元素 -->
      <picture>
        <source media="(max-width: 600px)" srcset="images/red-panda-portrait-small.jpg">
        <img src="images/red-panda-landscape.jpg" alt="一只小熊猫">
      </picture>
    </div>

  </main>
</body>

</html>

在这里插入图片描述

1.18 表格

  <table>
    <tr>
      <td>Hi, I'm your 1 cell.</td>
      <td>I'm your 2 cell.</td>
      <td>I'm your 3 cell.</td>
      <td>I'm your 4 cell.</td>
    </tr>
    <tr>
      <td>line 2, 1 cell.</td>
      <td>line 2, 2 cell.</td>
      <td>line 2, 3 cell.</td>
      <td>line 2, 4 cell.</td>
    </tr>
  </table>

在这里插入图片描述

1.19 table彩色


  <table>
    <colgroup>
      <col span="2">
      <col style="background-color:red;">
      <col style="width:42px;">
      <col style="background-color:#97DB9A;">
      <col style="background-color:#DCC48E; border:4px solid #C1437A;">
      <col span="2" style="width:42px;">
    </colgroup>

    <tr>
      <td>&nbsp;</td>
      <th>星期一</th>
      <th>星期二</th>
      <th>星期三</th>
      <th>星期四</th>
      <th>星期五</th>
      <th>星期六</th>
      <th>星期日</th>
    </tr>
    <tr>
      <th>第一节</th>
      <td>英语</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>德语</td>
      <td>荷兰语</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <th>第二节</th>
      <td>英语</td>
      <td>英语</td>
      <td>&nbsp;</td>
      <td>德语</td>
      <td>荷兰语</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <th>第三节</th>
      <td>&nbsp;</td>
      <td>德语</td>
      <td>&nbsp;</td>
      <td>德语</td>
      <td>荷兰语</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <th>第四节</th>
      <td>&nbsp;</td>
      <td>英语</td>
      <td>&nbsp;</td>
      <td>英语</td>
      <td>荷兰语</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </table>

在这里插入图片描述

二 CSS

https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web/CSS_basics

2.1 第一个页面

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>我在他乡挺好的</title>
    <link href="styles/style.css" rel="stylesheet">
</head>

<body>
    <img src="images/image-filename.jpg" alt="测试图片">
    <p class="editor-note">我的猫脾气爆:)</p>
    <p>我的猫咪脾气<strong>暴躁</strong>:)</p>
    <h1>主标题</h1>
    <h2>顶层标题</h2>
    <h3>子标题</h3>
    <h4>次子标题</h4>
    <p>这是一个段落</p>
    <ul>
        <li>技术人员</li>
        <li>思考着</li>
        <li>建造者</li>
    </ul>
    <p>我们致力于</p>
    <a href="https://www.mozilla.org/zh-CN/about/manifesto/">Mozilla 宣言</a>
</body>

</html>
p {
    color: red;
}


在这里插入图片描述

2.2 加框

p {
    color: red;
    width: 500px;
    border: 1px solid black;
}

在这里插入图片描述

2.3 换字体

/* p,
li,
h1 {
    color: red;
    width: 500px;
    border: 1px solid black;
} */

html {
    font-size: 10px;
    font-family: 'Open Sans', sans-serif;
}
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>我在他乡挺好的</title>
    <link href="styles/style.css" rel="stylesheet">
    <link href="https://fonts.font.im/css?family=Open+Sans" rel="stylesheet" type="text/css">
</head>

<body>
    <img src="images/image-filename.jpg" alt="测试图片">
    <p class="editor-note">我的猫脾气爆:)</p>
    <p>我的猫咪脾气<strong>暴躁</strong>:)</p>
    <h1>主标题</h1>
    <h2>顶层标题</h2>
    <h3>子标题</h3>
    <h4>次子标题</h4>
    <p>这是一个段落</p>
    <ul>
        <li>技术人员</li>
        <li>思考着</li>
        <li>建造者</li>
    </ul>
    <p>我们致力于</p>
    <a href="https://www.mozilla.org/zh-CN/about/manifesto/">Mozilla 宣言</a>
</body>

</html>

在这里插入图片描述

2.4 居中

/* p,
li,
h1 {
    color: red;
    width: 500px;
    border: 1px solid black;
} */

html {
    font-size: 10px;
    font-family: 'Open Sans', sans-serif;
}

h1 {
    font-size: 60px;
    text-align: center;
}

p,
li {
    font-size: 16px;
    /* line-height 后而可以跟不同的参数,如果是数字,就是当前字体大小乘上数字 */
    line-height: 2;
    letter-spacing: 1px;
}

在这里插入图片描述

2.5 背景色

/* p,
li,
h1 {
    color: red;
    width: 500px;
    border: 1px solid black;
} */

html {
    font-size: 10px;
    font-family: 'Open Sans', sans-serif;
    background-color: #00539F;
}

h1 {
    font-size: 60px;
    text-align: center;
}

p,
li {
    font-size: 16px;
    /* line-height 后而可以跟不同的参数,如果是数字,就是当前字体大小乘上数字 */
    line-height: 2;
    letter-spacing: 1px;
}

在这里插入图片描述

/* p,
li,
h1 {
    color: red;
    width: 500px;
    border: 1px solid black;
} */

html {
    font-size: 10px;
    font-family: 'Open Sans', sans-serif;
    background-color: #00539F;
}

h1 {
    font-size: 60px;
    text-align: center;
}

p,
li {
    font-size: 16px;
    /* line-height 后而可以跟不同的参数,如果是数字,就是当前字体大小乘上数字 */
    line-height: 2;
    letter-spacing: 1px;
}

body {
    width: 600px;
    margin: 0 auto;
    background-color: #FF9500;
    padding: 0 20px 20px 20px;
    border: 5px solid black;
}

在这里插入图片描述
现在是 元素。以上条声明,我们来逐条查看:

width: 600px; —— 强制页面永远保持 600 像素宽。
margin: 0 auto; —— 为 margin 或 padding 等属性设置两个值时,第一个值代表元素的上方和下方(在这个例子中设置为 0),而第二个值代表左边和右边(在这里,auto 是一个特殊的值,意思是水平方向上左右对称)。你也可以使用一个,三个或四个值,参考 这里 。
background-color: #FF9500; —— 如前文所述,指定元素的背景颜色。我们给 body 用了一种略微偏红的橘色以与深蓝色的 元素形成反差,你也可以尝试其它颜色。
padding: 0 20px 20px 20px; —— 我们给内边距设置了四个值来让内容四周产生一点空间。这一次我们不设置上方的内边距,设置右边,下方,左边的内边距为20像素。值以上、右、下、左的顺序排列。
border: 5px solid black; —— 直接为 body 设置 5 像素的黑色实线边框。

2.6 阴影

/* p,
li,
h1 {
    color: red;
    width: 500px;
    border: 1px solid black;
} */

html {
    font-size: 10px;
    font-family: 'Open Sans', sans-serif;
    background-color: #00539F;
}

h1 {
    font-size: 60px;
    text-align: center;
    margin: 0;
    padding: 20px 0;
    color: #00539F;
    text-shadow: 3px 3px 1px black;
}

p,
li {
    font-size: 16px;
    /* line-height 后而可以跟不同的参数,如果是数字,就是当前字体大小乘上数字 */
    line-height: 2;
    letter-spacing: 1px;
}

body {
    width: 600px;
    margin: 0 auto;
    background-color: #FF9500;
    padding: 0 20px 20px 20px;
    border: 5px solid black;
}

在这里插入图片描述

2.7 图片居中

/* p,
li,
h1 {
    color: red;
    width: 500px;
    border: 1px solid black;
} */

html {
    font-size: 10px;
    font-family: 'Open Sans', sans-serif;
    background-color: #00539F;
}

h1 {
    font-size: 60px;
    text-align: center;
    margin: 0;
    padding: 20px 0;
    color: #00539F;
    text-shadow: 3px 3px 1px black;
}

p,
li {
    font-size: 16px;
    /* line-height 后而可以跟不同的参数,如果是数字,就是当前字体大小乘上数字 */
    line-height: 2;
    letter-spacing: 1px;
}

body {
    width: 600px;
    margin: 0 auto;
    background-color: #FF9500;
    padding: 0 20px 20px 20px;
    border: 5px solid black;
}

img {
    display: block;
    margin: 0 auto;
}

在这里插入图片描述

2.8 @rules

@rules

body {
  background-color: pink;
}

@media (min-width: 30em) {/*宽度大于30em的浏览器才生效*/
  body {
    background-color: blue;
  }
}

在这里插入图片描述

三 JS

https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web/JavaScript_basics

3.1 第一次先把JS组合到工程中

在这里插入图片描述

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>我在他乡挺好的</title>
    <link href="styles/style.css" rel="stylesheet">
    <link href="https://fonts.font.im/css?family=Open+Sans" rel="stylesheet" type="text/css">
    <script src="scripts/main.js" defer></script>
</head>

<body>
    <img src="images/image-filename.jpg" alt="测试图片">
    <p class="editor-note">我的猫脾气爆:)</p>
    <p>我的猫咪脾气<strong>暴躁</strong>:)</p>
    <h1>主标题</h1>
    <h2>顶层标题</h2>
    <h3>子标题</h3>
    <h4>次子标题</h4>
    <p>这是一个段落</p>
    <ul>
        <li>技术人员</li>
        <li>思考着</li>
        <li>建造者</li>
    </ul>
    <p>我们致力于</p>
    <a href="https://www.mozilla.org/zh-CN/about/manifesto/">Mozilla 宣言</a>
</body>

</html>
let myHeading = document.querySelector("h1");
myHeading.textContent = "Hello world!";

3.2 轮播图

/*
let myImage = document.querySelector("img");

myImage.onclick = function () {
  let mySrc = myImage.getAttribute("src");
  if (mySrc === "images/image1.jpg") {
    myImage.setAttribute("src", "../images/image2.jpg");
  } else {
    myImage.setAttribute("src", "../images/image3.jpg");
  }
};
*/

3.3 localStorage

let myButton = document.querySelector("button");
let myHeading = document.querySelector("h1");

function setUserName() {
  let myName = prompt("请输入你的名字");
  localStorage.setItem("name", myName);
  myHeading.textContent = "Mozilla 酷毙了, " + myName;
}

if (!localStorage.getItem("name")) {
  setUserName();
} else {
  let storedName = localStorage.getItem("name");
  myHeading.textContent = "Mozilla cool, " + storedName;
}

myButton.onclick = function () {
  setUserName();
};

在这里插入图片描述

3.4 更健壮的localStorage

let myButton = document.querySelector("button");
let myHeading = document.querySelector("h1");

function setUserName() {
  let myName = prompt("请输入你的名字");
  if (!myName || myName === null) {
    setUserName();
  } else {
    localStorage.setItem("name", myName);
    myHeading.textContent = "Mozilla 酷毙了, " + myName;
  }
}

if (!localStorage.getItem("name")) {
  setUserName();
} else {
  let storedName = localStorage.getItem("name");
  myHeading.textContent = "Mozilla cool, " + storedName;
}

myButton.onclick = function () {
  setUserName();
};

在这里插入图片描述

3.5 原型链

每个变量有个proto属性,指向自己的原型对象,图中person变量没有product属性,person的原型Shop也没有product属性,但Shop的原型supermarket有product属性,所以最终console.log(person.product)可以打印出结果。
在这里插入图片描述

四 学习资料

  • https://developer.mozilla.org/zh-CN/docs/Learn
    这个真的是很好的入门资料,可以从小白,到做东西,问了很多前端都说这个靠谱,而且还有中文的
  • https://andreasbm.github.io/web-skills/
  • https://roadmap.sh/
  • 在线沙箱
    • https://jsbin.com/?html,output
    • https://codepen.io/
    • https://jsfiddle.net/
    • https://foundation.mozilla.org/en/artifacts/thimble/
    • http://codesandbox.io/signin?continue=/dashboard
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【前端】html+js+css开发入门超详细介绍 的相关文章

  • 如何在 Angular 模板中嵌入 GitHub gist?

    角度忽略script其模板中包含标签 但加载 GitHub gist 需要它们 执行此操作的最佳做 法是什么 使用iframe 创造script动态标记 或者是其他东西 一种方法是创建一个iframe with script里面并在你希望你
  • Asp 按钮悬停和 CSS

    我有一个 asp 按钮控件 我在上面应用了一些样式 我希望鼠标悬停在该按钮上时 按钮的颜色应该发生变化或类似的情况 但我不明白为什么在 CSS 中按钮悬停功能不起作用 请帮忙 另请让我知道按钮悬停的最佳效果是什么
  • 如何将这段 javascript 代码重写为 C++11?

    这是我在 Javascript Definitive Guide 中看到的 javascript 闭包代码 我想把它写成C 11 var uniqueID1 function var id 0 return function return
  • 为什么媒体查询中的 CSS 旋转不会旋转回来

    我有一个 SVG 其中一些元素根据媒体查询进行旋转 如下所示 media max width 480px rect transform rotate 10deg 该元素旋转得很好 但 至少在 Chrome 中 它拒绝返回 这是为什么 其他指
  • 如何将 TextArea 放入表 td 中?

    我想放置一个textarea内表td 不幸的是 它仍然是单行的 td align right valign top td td td
  • 从 json 文件加入时添加角色 (autorole)

    我对 JS 相当陌生 为了学习 我决定为 Discord 制作一个机器人 我学到了很多并且正在继续学习 我有一个 autorole 的想法 我知道传统的做法 bot on guildMemberAdd member gt var role
  • 链接到当前页面,无需查询字符串

    我知道做链接有很多技巧 例如 a href query string 附加查询字符串后将链接到当前页面 有没有办法在删除查询字符串后链接回当前页面 而无需仅输入文件名 例如 在页面foo php q 3 我想链接到foo php 有没有快捷
  • JavaScript 中的凯撒密码

    我正在尝试编写一个程序来解决javascript中的以下问题 写在本段下面 我不知道为什么我的代码不起作用 有人可以帮助我吗 我是 JavaScript 新手 这是一个免费的代码训练营问题 现代常见的用法是 ROT13 密码 其中字母的值移
  • 如何用方向键移动div

    我想使用 jQuery 用箭头键移动 div 所以右 左 下 上 找到了我想要完成的演示here http atomicrobotdesign com blog htmlcss move objects around the canvas
  • 选择 jQuery 中的每第 n 个项目?

    jQuery 有方便的 even 和 odd 选择器 用于选择集合中偶数或奇数索引的项目 我用它来清除一系列浮动框中的所有其他项目 如下所示 div class 2up div div div div div div div and Cle
  • 在 Jest 测试中设置时刻时区

    我有 util 函数 它以特定的日期格式解析给定的日期 即 2019 01 28 然后使用momentJS检索当天的开始并将其转换为 ISO 日期格式 dates js import moment from moment export co
  • jquery 中 DOM 元素的手动垃圾回收是否可以提高浏览器性能?

    在性能范围内 删除不再需要的元素是否有意义 或者浏览器是否对代码中未进一步引用的 dom 元素执行自动垃圾收集 some element fadeOut 1000 function el el remove lt does this mak
  • 如何使用 javascript 禁用组合键?

    I would like to disable view source shortcut key for IE using JavaScript To disable Ctrl C I am using the following func
  • ES6 模板文字可以在运行时替换(或重用)吗?

    tl dr 是否可以制作可重用的模板文字 我一直在尝试使用模板文字 但我想我就是不明白 现在我感到沮丧 我的意思是 我想我明白了 但 它 不应该是它的运作方式 或者它应该如何实现 它应该变得不同 我看到的所有示例 甚至标记模板 都要求 替换
  • Cypress.io 如何处理异步代码

    我正在将旧的水豚测试转移到 cypress io 因为我们的应用程序正在采用 SPA 方式 在我们的案例中 我们有超过 2000 个测试 涵盖了很多功能 因此 测试功能的常见模式是让用户创建并发布报价 一开始我写了 cypress 浏览页面
  • 出于安全目的,您是否有理由不执行自己的算法来打乱 ID?

    我计划实现我自己的非常简单的 哈希 公式 为具有多个用户的应用程序添加一层安全性 我目前的计划如下 用户创建一个帐户 此时后端会生成一个 ID ID 通过公式运行 假设 ID 57 8926 36 7 或同样随机的东西 然后 我将新的用户
  • 更改哈希值而不触发 hashchange 事件

    我使用哈希来动态加载内容 为了使后退按钮正常工作 我正在捕获哈希更改 然而 有时我需要更改哈希值而不触发哈希更改函数 例如 当页面重定向到服务器端时 我需要在内容返回后更新哈希值 我想出的最佳解决方案是取消绑定 hashchange 事件
  • 如何将 Bootstrap 3 轮播标题移动到图像下方?

    我有这个 html 使用 bootstrap 3 显示幻灯片图像 div class col sm 8 div class carousel slide ol class carousel indicators li class activ
  • IE8 和怪异模式

    IE8 是否像 IE6 7 一样以怪异模式运行 我有一个网页 其中有一些非常奇怪的代码 内容以填充和负边距居中 它在 IE6 7 和其他浏览器中可以正常工作 但在 IE8 中 内容区域的宽度只有一半并且不居中 怪异模式的标志 源代码在 DO
  • 在哪里放置资源特定逻辑

    您能帮我考虑在 AngularJS 中将资源 服务 特定的业务逻辑放置在哪里吗 我觉得在我的资源上创建一些类似模型的抽象应该很棒 但我不确定如何做 API调用 gt GET customers 1 lt first name John la

随机推荐

  • pcl画圆球_点云视窗类CloudViewer的介绍以及PCL程序:圆球几何体代码解析

    点云视窗类CloudViewer是简单显示点云的可视化工具类 可以让用户用尽可能少的代码查看点云 注意 点云视窗类不能应用于多线程应用程序中 有关CloudViewer类的成员变量和函数等等 可以C Program Files PCL 1
  • 图片压缩插件image-compressor.js的使用和解决图片旋转问题(vue)

    1 安装 yarn add image compressor js npm i image compressor js 2 引入 import ImageCompressor from image compressor js 3 使用 语法
  • unity 加载场景时加载失败的问题

    需要实现场景跳转的功能 而且需要实现跳转的场景不是一个 其中一个可以很好的跳转 但是另一个新建的场景在跳转时却报错 Scene BatteryMaintenance couldn t be loaded because it has not
  • Apache PLC4X 副总裁宣布个人停止对项目提供免费支持;Linux 5.17 增加对中国 Soc 的支持;IPython 8.0 发布

    整理 宋彤彤 责编 屠敏 开源吞噬世界的趋势下 借助开源软件 基于开源协议 任何人都可以得到项目的源代码 加以学习 修改 甚至是重新分发 关注 开源日报 一文速览国内外今日的开源大事件吧 一分钟速览新闻点 开源大新闻 因缺少资金 Apach
  • 网络工程毕业设计选题大全 毕设题目推荐

    文章目录 0 简介 1 如何选题 2 最新网络工程选题 2 1 Java web SSM 系统 2 2 大数据方向 2 3 人工智能方向 2 4 其他方向 4 最后 0 简介 学长搜集分享最新的网络工程专业毕设毕设选题 难度适中 适合作为毕
  • Aspose.Diagram for Java V22.5

    Aspose Diagram for Java V22 5 Aspose Diagram for Java 是一个强大的 Microsoft Visio 文件处理 API 它提供了通用功能 例如创建 操作和转换本机 Visio 格式以及一些
  • 大数据学习脑图以及容易消化的入门教程

    近些年 大数据的火热可谓是技术人都知道啊 很多人呢 也想学习大数据相关 所以 这里分享几个大数据脑图 希望可以让你清楚明白从哪里入门大数据 知道该学习以及掌握哪些知识点 大数据相关脑图 想要在大数据这个领域汲取养分 让自己壮大成长 分享方向
  • sklearn中cross_val_score、cross_val_predict的用法比较

    交叉验证的概念 直接粘贴scikit learn官网的定义 scikit learn中计算交叉验证的函数 cross val score 得到K折验证中每一折的得分 K个得分取平均值就是模型的平均性能 cross val predict 得
  • 排列组合理解SQL JOINS的几种情况

    一 JOIN的三种方式 1 left join 2 right join 3 full join 二 Join的结果 两个集合的join可能出现多少中结果呢 利用数学里的排列组合知识很容易算出来 如上图 join相当于把两个集合分为三个部分
  • opencv光流Optical Flow

    光流Optical Flow 现在四轴飞行器越来越火 如何在室内进行定位呢 不同于传统四轴的姿态控制 电机驱动 室外定位 都有了一套完整的方案 室内定位还是没有完全成熟 目前大四轴可以利用的GPS定高 小四轴比较成熟的也就是光流方案了 先看
  • springboot之接受数据的三种方式:@requestParam,@requestBody和@PathVariable

    前言 作为后端 我们经常需要和前端进行数据之间的交互 而我们从前端获取的方式主要有下面几种 路径中的数据 例如localhost user 2 这时我们需要获得路径上的数字2 存放到url头里的参数例如localhost user name
  • pytorch入门的入门

    DATASETS DATALOADERS 两个有用的 torch utils data DataLoader and torch utils data Dataset 其中Dataset存储样本和标签 就是图片和真值 而DataLoader
  • JDK7下载

    JDK7下载 JDK1 7下载可选择window版和linux版 下载说明文档 判断系统是64位还是32位 Linux下选tar gz好还是rpm 1 windows版JDK1 7 64位下载 点击下载 jdk 7u67 windows x
  • MATLAB/Simulink 使用记录

    1 InitFcn 仿真模块全局变量初始化 启动Run之后可以添加至工作区 右键 Model Perprities Callbacks InitFcn 2 子模块参数输入 右键模块 Mask Edit Mask Parameter Dial
  • java 中各种数据类型的互相转换的常用方法

    java 各种数据类型的互相转换 1 StringBuilder转化为String String str abcdefghijklmnopqrs StringBuilder stb new StringBuilder str 2 整型数组转
  • openCV 3.4.7在Visual Studio 2015中配置

    准备 1 安装openCV3 4 7 https opencv org releases 2 安装visual studio 2015 http c biancheng net view 453 html 开始配置 1 计算机 右键 属性
  • 北邮22级信通院数电:Verilog-FPGA(3)实验“跑通第一个例程”modelsim仿真及遇到的问题汇总(持续更新中)

    北邮22信通一枚 跟随课程进度更新北邮信通院数字系统设计的笔记 代码和文章 持续关注作者 迎接数电实验学习 获取更多文章 请访问专栏 北邮22级信通院数电实验 青山如墨雨如画的博客 CSDN博客 注意 本篇文章所有绝对路径的展示都来自上一篇
  • C语言回调函数学习

    作者 杨硕 华清远见嵌入式学院讲师 对指针的应用是C语言编程的精髓所在 而回调函数就是C语言里面对函数指针的高级应用 简而言之 回调函数是一个通过函数指针调用的函数 如果你把函数指针 函数的入口地址 传递给另一个函数 当这个函数指针被用来调
  • FBX SDK 开发环境配置 visual studio 2022

    FBX Adaptable File Formats for 3D Animation Software Autodesk 下载windows的sdk并安装 创建一个c console 工程 设置include目录 添加预处理宏 FBX S
  • 【前端】html+js+css开发入门超详细介绍

    文章目录 一 HTML 1 1 第一个页面 1 2 所有标签都来一遍 1 3 超链接 1 4 发邮件 1 5 description list描述列表 1 6 blockquote块引用 1 7 linequote 1 8 address