布道翁 發表於 2023-7-1 09:22:00

day11 前端开发

<h1 id="day11-前端开发">day11 前端开发</h1>
<pre><code>目的:开发一个平台(网站)
        - 前端开发:HTML、CSS、JavaScript
        - Web框架:接收请求并处理
        - MySQL数据库:存储数据地方

快速上手:
        基于Flask Web框架让你快速搭建一个网站出来。
       
深入学习:
        基于Django框架(主要)
</code></pre>
<h2 id="1快速开发网站">1.快速开发网站</h2>
<pre><code>pip install flask
</code></pre>
<pre><code class="language-python">from flask import Flask

app = Flask(__name__)


# 创建了网址 /show/info 和 函数index 的对应关系
# 以后用户在浏览器上访问 /show/info,网站自动执行 index
@app.route("/show/info")
def index():
    return "中国联通"


if __name__ == '__main__':
    app.run()
</code></pre>
<p>咱们网站与别人的不一样:</p>
<ul>
<li>
<p>别人的好看 vs 咱们的难堪。</p>
<pre><code>浏览器可以识别很多标签+数据,例如:
        &lt;h1&gt;中国&lt;/h1&gt;                                                   -&gt;浏览器看见加大加粗
        &lt;span style='color:red;'&gt;联通&lt;/span&gt;-&gt;浏览器看见字体变红色
       
如果我们能把浏览器能识别的所有的标签都学会,我们在网站就可以控制页面到底长什么样子。
</code></pre>
</li>
<li>
<p>Flask框架为了让咱们写标签方便,支持将字符串写入到文件里。</p>
</li>
<li>
<pre><code class="language-python">from flask import Flask,render_template

app = Flask(__name__)

@app.route("/show/info")
def index():
    # Flask内部会自动打开这个文件,并读取内容,将内容给用户返回。
    # 默认:去当前项目目录的templates文件夹中找。
    return render_template("index.html")

if __name__ == '__main__':
    app.run()
</code></pre>
</li>
</ul>
<h2 id="2浏览器能识别的标签">2.浏览器能识别的标签</h2>
<h3 id="21-编码head">2.1 编码(head)</h3>
<pre><code class="language-html">&lt;meta charset="UTF-8"&gt;
</code></pre>
<h3 id="22-titlehead">2.2 title(head)</h3>
<pre><code class="language-html">&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;我的联通&lt;/title&gt;
&lt;/head&gt;
</code></pre>
<p><img src="https://img2023.cnblogs.com/blog/3186882/202307/3186882-20230701092143394-1512932958.png"></p>
<h3 id="23-标题">2.3 标题</h3>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;我的联通&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;h1&gt;1级标题&lt;/h1&gt;
    &lt;h2&gt;2级标题&lt;/h2&gt;
    &lt;h3&gt;3级标题&lt;/h3&gt;
    &lt;h4&gt;4级标题&lt;/h4&gt;
    &lt;h5&gt;5级标题&lt;/h5&gt;
    &lt;h6&gt;6级标题&lt;/h6&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<h3 id="24-div和span">2.4 div和span</h3>
<pre><code class="language-html">&lt;div&gt;内容&lt;/div&gt;

&lt;span&gt;asdfa&lt;/span&gt;
</code></pre>
<ul>
<li>
<p>div,一个人占一整行。【块级标签】</p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;我的联通&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div&gt;山东蓝翔&lt;/div&gt;
    &lt;div&gt;挖掘机哪家强&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
</li>
<li>
<p>span,自己多大占多少。【行内标签、内联标签】</p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;我的联通&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;span&gt;山东蓝翔&lt;/span&gt;
    &lt;span&gt;挖掘机哪家强&lt;/span&gt;
&lt;/body&gt;
&lt;/html&gt;

</code></pre>
</li>
</ul>
<p>注意:这两个标签比较素 + CSS样式。</p>
<h3 id="练习题">练习题</h3>
<p><img src="https://img2023.cnblogs.com/blog/3186882/202307/3186882-20230701092143918-421878393.png"></p>
<h3 id="245-超链接">2.4.5 超链接</h3>
<pre><code class="language-html">跳转到其他网站
&lt;a href="http://www.chinaunicom.com.cn/about/about.html"&gt;点击跳转&lt;/a&gt;
</code></pre>
<pre><code class="language-html">跳转到自己网站其他的地址

&lt;a href="http://127.0.0.1:5000/get/news"&gt;点击跳转&lt;/a&gt;
&lt;a href="/get/news"&gt;点击跳转&lt;/a&gt;
</code></pre>
<pre><code class="language-html"># 当前页面打开
&lt;a href="/get/news"&gt;点击跳转&lt;/a&gt;

# 新的Tab页面打开
&lt;a href="/get/news" target="_blank"&gt;点击跳转&lt;/a&gt;
</code></pre>
<h3 id="246-图片">2.4.6 图片</h3>
<pre><code class="language-html">&lt;img src="图片地址" /&gt;
</code></pre>
<pre><code class="language-html">直接显示别人的图片地址(防盗链):
&lt;img src="https://pic4.zhimg.com/v2-b23f984c2aeaa7bed12e890b4338d499_720w.jpg" /&gt;
</code></pre>
<pre><code class="language-html">&lt;img src="自己图片的地址" /&gt;
显示自己的图片:
        - 自己项目中创建:static目录,图片要放在static
        - 在页面上引入图片
          &lt;img src="/static/wbq.png" /&gt;
</code></pre>
<p>关于设置图片的高度和宽度</p>
<pre><code class="language-html">&lt;img src="图片地址" style="height:100px; width:200px;" /&gt;
&lt;img src="图片地址" style="height:10%; width:20%;" /&gt;
</code></pre>
<h3 id="小结">小结</h3>
<ul>
<li>
<p>学习的标签</p>
<pre><code class="language-html">&lt;h1&gt;&lt;/h1&gt;
&lt;div&gt;&lt;/div&gt;
&lt;span&gt;&lt;/span&gt;
&lt;a&gt;&lt;/a&gt;
&lt;img /&gt;
</code></pre>
</li>
<li>
<p>划分</p>
<pre><code>- 块级标签
        &lt;h1&gt;&lt;/h1&gt;
        &lt;div&gt;&lt;/div&gt;
- 行内标签
        &lt;span&gt;&lt;/span&gt;
    &lt;a&gt;&lt;/a&gt;
    &lt;img /&gt;
</code></pre>
</li>
<li>
<p>嵌套</p>
<pre><code class="language-html">&lt;div&gt;
    &lt;span&gt;xxx&lt;/span&gt;
    &lt;img /&gt;
    &lt;a&gt;&lt;/a&gt;
&lt;/div&gt;
</code></pre>
</li>
</ul>
<p>案例:商品列表</p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;商品列表&lt;/h1&gt;

&lt;a href="https://www.mi.com/redmiwatch2" target="_blank"&gt;
    &lt;img src="/static/a1.jpeg" style="width: 150px"&gt;
&lt;/a&gt;

&lt;a href="https://www.mi.com/shouhuan6/nfc" target="_blank"&gt;
    &lt;img src="/static/a2.jpeg" style="width: 150px"&gt;
&lt;/a&gt;

&lt;a href="https://www.mi.com/xiaomibuds3pro" target="_blank"&gt;
    &lt;img src="/static/a3.jpeg" style="width: 150px"&gt;
&lt;/a&gt;

&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<h3 id="247-列表">2.4.7 列表</h3>
<pre><code class="language-html">&lt;ul&gt;
    &lt;li&gt;中国移动&lt;/li&gt;
    &lt;li&gt;中国联通&lt;/li&gt;
    &lt;li&gt;中国电信&lt;/li&gt;
&lt;/ul&gt;
</code></pre>
<pre><code class="language-html">&lt;ol&gt;
    &lt;li&gt;中国移动&lt;/li&gt;
    &lt;li&gt;中国联通&lt;/li&gt;
    &lt;li&gt;中国电信&lt;/li&gt;
&lt;/ol&gt;
</code></pre>
<p><img src="https://img2023.cnblogs.com/blog/3186882/202307/3186882-20230701092144399-1711305207.png"></p>
<h3 id="248-表格">2.4.8 表格</h3>
<pre><code class="language-html">&lt;table&gt;
    &lt;thead&gt;
            &lt;tr&gt;&lt;th&gt;ID&lt;/th&gt;&lt;th&gt;姓名&lt;/th&gt;   &lt;th&gt;年龄&lt;/th&gt;&lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
            &lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;武沛齐&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;   &lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;吴阳军&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;   &lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;刘东&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;    &lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;郭智&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;    &lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;电摩&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;    &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
</code></pre>
<h3 id="案例">案例</h3>
<p><img src="https://img2023.cnblogs.com/blog/3186882/202307/3186882-20230701092144756-143733945.png"></p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;h1&gt;用户列表&lt;/h1&gt;
    &lt;table border="1"&gt;
      &lt;thead&gt;
            &lt;tr&gt;
                &lt;th&gt;ID&lt;/th&gt;
                &lt;th&gt;头像&lt;/th&gt;
                &lt;th&gt;姓名&lt;/th&gt;
                &lt;th&gt;邮箱&lt;/th&gt;
                &lt;th&gt;更多信息&lt;/th&gt;
                &lt;th&gt;操作&lt;/th&gt;
            &lt;/tr&gt;
      &lt;/thead&gt;

      &lt;tbody&gt;
            &lt;tr&gt;
                &lt;td&gt;1&lt;/td&gt;
                &lt;td&gt;
                  &lt;img src="/static/a1.jpeg" alt="" style="height: 50px"&gt;
                &lt;/td&gt;
                &lt;td&gt;武沛齐&lt;/td&gt;
                &lt;td&gt;休息@live.com&lt;/td&gt;
                &lt;td&gt;
                  &lt;a href="http://www.chinaunicom.com.cn/about/leaders.html" target="_blank"&gt;查看详细&lt;/a&gt;
                &lt;/td&gt;
                &lt;td&gt;
                  编辑
                  删除
                &lt;/td&gt;
            &lt;/tr&gt;

             &lt;tr&gt;
                &lt;td&gt;1&lt;/td&gt;
                &lt;td&gt;
                  &lt;img src="/static/a1.jpeg" alt="" style="height: 50px"&gt;
                &lt;/td&gt;
                &lt;td&gt;武沛齐&lt;/td&gt;
                &lt;td&gt;休息@live.com&lt;/td&gt;
                &lt;td&gt;
                  &lt;a href="http://www.chinaunicom.com.cn/about/leaders.html" target="_blank"&gt;查看详细&lt;/a&gt;
                &lt;/td&gt;
               &lt;td&gt;
                  编辑
                  删除
                &lt;/td&gt;
            &lt;/tr&gt;

             &lt;tr&gt;
                &lt;td&gt;1&lt;/td&gt;
                &lt;td&gt;
                  &lt;img src="/static/a1.jpeg" alt="" style="height: 50px"&gt;
                &lt;/td&gt;
                &lt;td&gt;武沛齐&lt;/td&gt;
                &lt;td&gt;休息@live.com&lt;/td&gt;
                &lt;td&gt;
                  &lt;a href="http://www.chinaunicom.com.cn/about/leaders.html" target="_blank"&gt;查看详细&lt;/a&gt;
                &lt;/td&gt;
               &lt;td&gt;
                  编辑
                  删除
                &lt;/td&gt;
            &lt;/tr&gt;

             &lt;tr&gt;
                &lt;td&gt;1&lt;/td&gt;
                &lt;td&gt;
                  &lt;img src="/static/a1.jpeg" alt="" style="height: 50px"&gt;
                &lt;/td&gt;
                &lt;td&gt;武沛齐&lt;/td&gt;
                &lt;td&gt;休息@live.com&lt;/td&gt;
                &lt;td&gt;
                  &lt;a href="http://www.chinaunicom.com.cn/about/leaders.html" target="_blank"&gt;查看详细&lt;/a&gt;
                &lt;/td&gt;
               &lt;td&gt;
                  编辑
                  删除
                &lt;/td&gt;
            &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<h3 id="249-input系列7个">2.4.9 input系列(7个)</h3>
<pre><code class="language-html">&lt;input type="text" /&gt;
&lt;input type="password"&gt;   
&lt;input type="file"&gt;

&lt;input type="radio" name="n1"&gt;男
&lt;input type="radio" name="n1"&gt;女

&lt;input type="checkbox"&gt;篮球
&lt;input type="checkbox"&gt;足球
&lt;input type="checkbox"&gt;乒乓球
&lt;input type="checkbox"&gt;棒球

&lt;input type="button" value="提交"&gt;--&gt;普通的按钮
&lt;input type="submit" value="提交"&gt;--&gt;提交表单
</code></pre>
<h3 id="2410-下拉框">2.4.10 下拉框</h3>
<pre><code class="language-html">&lt;select&gt;
    &lt;option&gt;北京&lt;/option&gt;
    &lt;option&gt;上海&lt;/option&gt;
    &lt;option&gt;深圳&lt;/option&gt;
&lt;/select&gt;

&lt;select multiple&gt;
    &lt;option&gt;北京&lt;/option&gt;
    &lt;option&gt;上海&lt;/option&gt;
    &lt;option&gt;深圳&lt;/option&gt;
&lt;/select&gt;
</code></pre>
<h3 id="2411-多行文本">2.4.11 多行文本</h3>
<pre><code class="language-html">&lt;textarea&gt;&lt;/textarea&gt;
</code></pre>
<h3 id="案例用户注册">案例:用户注册</h3>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;


&lt;h1&gt;用户注册&lt;/h1&gt;
&lt;div&gt;
    用户名:&lt;input type="text"/&gt;
&lt;/div&gt;
&lt;div&gt;
    密码:&lt;input type="password"/&gt;
&lt;/div&gt;

&lt;div&gt;
    性别:
    &lt;input type="radio"&gt;男
    &lt;input type="radio"&gt;女
&lt;/div&gt;

&lt;div&gt;
    爱好:
    &lt;input type="checkbox"&gt;篮球
    &lt;input type="checkbox"&gt;足球
    &lt;input type="checkbox"&gt;乒乓球
&lt;/div&gt;

&lt;div&gt;
    城市:
    &lt;select&gt;
      &lt;option&gt;北京&lt;/option&gt;
      &lt;option&gt;上海&lt;/option&gt;
      &lt;option&gt;深圳&lt;/option&gt;
    &lt;/select&gt;
&lt;/div&gt;

&lt;div&gt;
    擅长领域:
    &lt;select multiple&gt;
      &lt;option&gt;打游戏&lt;/option&gt;
      &lt;option&gt;睡觉&lt;/option&gt;
      &lt;option&gt;吃饭&lt;/option&gt;
      &lt;option&gt;刷抖音&lt;/option&gt;
    &lt;/select&gt;
&lt;/div&gt;

&lt;div&gt;
    备注:&lt;textarea&gt;&lt;/textarea&gt;
&lt;/div&gt;

&lt;div&gt;
    &lt;input type="button" value="button按钮"&gt;
    &lt;input type="submit" value="submit按钮"&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<h3 id="知识点回顾和补充">知识点回顾和补充</h3>
<ol>
<li>
<p>网站请求的流程<br>
<img src="https://img2023.cnblogs.com/blog/3186882/202307/3186882-20230701092145165-1324367100.png"></p>
</li>
<li>
<p>一大堆的标签</p>
<pre><code>h/div/span/a/img/ul/li/table/input/textarea/select
</code></pre>
</li>
<li>
<p>网络请求</p>
<ul>
<li>
<p>在浏览器的URL中写入地址,点击回车,访问。</p>
<pre><code>浏览器会发送数据过去,本质上发送的是字符串:
"GET /explore http1.1\r\nhost:...\r\nuser-agent\r\n..\r\n\r\n"

浏览器会发送数据过去,本质上发送的是字符串:
"POST /explore http1.1\r\nhost:...\r\nuser-agent\r\n..\r\n\r\n数据库"
</code></pre>
</li>
<li>
<p>浏览器向后端发送请求时</p>
<ul>
<li>
<p>GET请求【URL方法 / 表单提交】</p>
<ul>
<li>
<p>现象:GET请求、跳转、向后台传入数据数据会拼接在URL上。</p>
<pre><code>https://www.sogou.com/web?query=安卓&amp;age=19&amp;name=xx
</code></pre>
<p>注意:GET请求数据会在URL中体现。</p>
</li>
</ul>
</li>
<li>
<p>POST请求【表单提交】</p>
<ul>
<li>现象:提交数据不在URL中而是在请求体中。</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ol>
<h3 id="案例用户注册-1">案例:用户注册</h3>
<ul>
<li>
<p>新创建项目</p>
</li>
<li>
<p>创建Flask代码</p>
<pre><code class="language-python">from flask import Flask, render_template, request

app = Flask(__name__)


@app.route('/register', methods=['GET', "POST"])
def register():
    if request.method == "GET":
      return render_template('register.html')

    else:
      user = request.form.get("user")
      pwd = request.form.get("pwd")
      gender = request.form.get("gender")
      hobby_list = request.form.getlist("hobby")
      city = request.form.get("city")
      skill_list = request.form.getlist("skill")
      more = request.form.get("more")
      print(user, pwd, gender, hobby_list, city, skill_list, more)
      # 将用户信息写入文件中实现注册、写入到excel中实现注册、写入数据库中实现注册

      # 2.给用户再返回结果
      return "注册成功"


if __name__ == '__main__':
    app.run()

</code></pre>
</li>
<li>
<p>HTML代码</p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;用户注册&lt;/h1&gt;

&lt;form method="post" action="/register"&gt;
    &lt;div&gt;
      用户名:&lt;input type="text" name="user"/&gt;
    &lt;/div&gt;
    &lt;div&gt;
      密码:&lt;input type="password" name="pwd"/&gt;
    &lt;/div&gt;
    &lt;div&gt;
      性别:
      &lt;input type="radio" name="gender" value="1"&gt;男
      &lt;input type="radio" name="gender" value="2"&gt;女
    &lt;/div&gt;
    &lt;div&gt;
      爱好:
      &lt;input type="checkbox" name="hobby" value="10"&gt;篮球
      &lt;input type="checkbox" name="hobby" value="20"&gt;足球
      &lt;input type="checkbox" name="hobby" value="30"&gt;乒乓球
      &lt;input type="checkbox" name="hobby" value="40"&gt;棒球
    &lt;/div&gt;

    &lt;div&gt;
      城市:
      &lt;select name="city"&gt;
            &lt;option value="bj"&gt;北京&lt;/option&gt;
            &lt;option value="sh"&gt;上海&lt;/option&gt;
            &lt;option value="sz"&gt;深圳&lt;/option&gt;
      &lt;/select&gt;
    &lt;/div&gt;

    &lt;div&gt;
      擅长领域:
      &lt;select name="skill" multiple&gt;
            &lt;option value="100"&gt;吃饭&lt;/option&gt;
            &lt;option value="101"&gt;睡觉&lt;/option&gt;
            &lt;option value="102"&gt;打球&lt;/option&gt;
      &lt;/select&gt;
    &lt;/div&gt;

    &lt;div&gt;
      备注:&lt;textarea name="more"&gt;&lt;/textarea&gt;
    &lt;/div&gt;

    &lt;input type="submit" value="submit按钮"&gt;
&lt;/form&gt;

&lt;/body&gt;
&lt;/html&gt;

</code></pre>
</li>
</ul>
<h3 id="案例登录">案例:登录()</h3>
<p>见代码示例。</p>
<p>页面上的数据,想要提交到后台:</p>
<ul>
<li>form标签包裹要提交的数据的标签。
<ul>
<li>提交方式:<code>method="get"</code></li>
<li>提交的地址:<code>action="/xxx/xxx/xx"</code></li>
<li>在form标签里面必须有一个submit标签。</li>
</ul>
</li>
<li>在form里面的一些标签:input/select/textarea
<ul>
<li>一定要写name属性 <code>&lt;input type="text" name="uu"/&gt;</code></li>
</ul>
</li>
</ul>
<h3 id="总结">总结</h3>
<ol>
<li>
<p>称呼</p>
<pre><code>- 浏览器能够识别的标签(不专业)
- HTML标签。

什么是是HTML?超文本传输语言(与浏览器搭配)。
</code></pre>
</li>
<li>
<p>HTML标签(默认格式样式、以后通过手段可以修改)</p>
</li>
<li>
<p>HTML标签与编程语言无关</p>
<ul>
<li>java + HTML</li>
<li>c# + HTML</li>
<li>php + HTML</li>
<li>python + HTML</li>
</ul>
</li>
<li>
<p>提醒:HTML标签比较多,标签还有很多很多,不必逐一学会。</p>
</li>
</ol>
<h2 id="3css样式">3.CSS样式</h2>
<p>css,专门用来“美化”标签。</p>
<ul>
<li>基础CSS,写简单页面 &amp; 看懂 &amp; 改。</li>
<li>模块,调整和修改。</li>
</ul>
<h3 id="31-快速了解">3.1 快速了解</h3>
<pre><code class="language-html">&lt;img src="..." style="height:100px" /&gt;

&lt;div style="color:red;"&gt;中国联通&lt;/div&gt;
</code></pre>
<h3 id="32-css应用方式">3.2 CSS应用方式</h3>
<h4 id="1-在标签上">1. 在标签上</h4>
<pre><code class="language-html">&lt;img src="..." style="height:100px" /&gt;

&lt;div style="color:red;"&gt;中国联通&lt;/div&gt;
</code></pre>
<h4 id="2-在head标签中写style标签">2. 在head标签中写style标签(*)</h4>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;style&gt;
      .c1{
            color:red;
      }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;h1 class='c1'&gt;用户登录&lt;/h1&gt;
&lt;h1 class='c1'&gt;用户登录&lt;/h1&gt;
&lt;h1 class='c1'&gt;用户登录&lt;/h1&gt;
&lt;h1 class='c1'&gt;用户登录&lt;/h1&gt;
   
&lt;/body&gt;
&lt;/html&gt;

</code></pre>
<h4 id="3写到文件中">3.写到文件中(*)</h4>
<pre><code class="language-css">.c1{
    height:100px;
}

.c2{
    color:red;
}
</code></pre>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;link rel="stylesheet" href="common.css" /&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;h1 class='c1'&gt;用户登录&lt;/h1&gt;
&lt;h1 class='c2'&gt;用户登录&lt;/h1&gt;
&lt;h1 class='c2'&gt;用户登录&lt;/h1&gt;
&lt;h1 class='c1'&gt;用户登录&lt;/h1&gt;
   
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<h4 id="案例flask中的应用登录注册">案例:flask中的应用(登录注册)</h4>
<p>见示例:day11_account-1.zip</p>
<h4 id="问题用flask框架开发不方便">问题:用Flask框架开发不方便</h4>
<ul>
<li>每次都需要重启</li>
<li>规定有些文件必须要放在特定的文件夹</li>
<li>新创建一个页面
<ul>
<li>函数</li>
<li>HTML文件</li>
</ul>
</li>
</ul>
<p>有没有一种方式,可以让我快速的编写前端的代码并查看效果呢,最后再讲页面集成到Flask中。</p>
<p>Pycharm为我们提供了一种非常便捷开发前端页面的工具。</p>
<p><img src="https://img2023.cnblogs.com/blog/3186882/202307/3186882-20230701092145545-1628867540.png"></p>
<h3 id="33-选择器">3.3 选择器</h3>
<ul>
<li>
<p>ID选择器</p>
<pre><code class="language-css">#c1{
   
}

&lt;div id='c1'&gt;&lt;/div&gt;
</code></pre>
</li>
<li>
<p>类选择器(最多)</p>
<pre><code class="language-css">.c1{
   
}

&lt;div clss='c1'&gt;&lt;/div&gt;
</code></pre>
</li>
<li>
<p>标签选择器</p>
<pre><code class="language-css">div{
   
}

&lt;div&gt;xxx&lt;/div&gt;
</code></pre>
</li>
<li>
<p>属性选择器</p>
<pre><code class="language-css">input{
        border: 1px solid red;
}
.v1{
        color: gold;
}
</code></pre>
<pre><code class="language-html">&lt;input type="text"&gt;
&lt;input type="password"&gt;

&lt;div class="v1" xx="123"&gt;s&lt;/div&gt;
&lt;div class="v1" xx="456"&gt;f&lt;/div&gt;
&lt;div class="v1" xx="999"&gt;a&lt;/div&gt;
</code></pre>
</li>
<li>
<p>后代选择器</p>
<pre><code class="language-css">.yy li{
    color: pink;
}
.yy &gt; a{
    color: dodgerblue;
}
</code></pre>
<pre><code class="language-html">&lt;div class="yy"&gt;
    &lt;a&gt;百度&lt;/a&gt;
    &lt;div&gt;
      &lt;a&gt;谷歌&lt;/a&gt;
    &lt;/div&gt;
    &lt;ul&gt;
      &lt;li&gt;美国&lt;/li&gt;
      &lt;li&gt;日本&lt;/li&gt;
      &lt;li&gt;韩国&lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;
</code></pre>
</li>
</ul>
<p>关于选择器:</p>
<pre><code>多:类选择器、标签选择器、后代选择器
少:属性选择器、ID选择器
</code></pre>
<p>关于多个样式 &amp; 覆盖的问题:</p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;style&gt;
      .c1{
            color: red;
            border: 1px solid red;
      }
      .c2{
            font-size: 28px;
            color: green;
      }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class="c1 c2"&gt;中国联通&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<p>补充:下面的不要覆盖我。</p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;style&gt;
      .c1{
            color: red !important;
            border: 1px solid red;
      }
      .c2{
            font-size: 28px;
            color: green;
      }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class="c1 c2"&gt;中国联通&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<h3 id="34-样式">3.4 样式</h3>
<h4 id="1-高度和宽度">1. 高度和宽度</h4>
<pre><code class="language-css">.c1{
    height: 300px;
    width: 500px;
}
</code></pre>
<p>注意事项:</p>
<ul>
<li>宽度,支持百分比。</li>
<li>行内标签:默认无效</li>
<li>块级标签:默认有效(霸道,右侧区域空白,也不给你占用)</li>
</ul>
<h4 id="2-块级和行内标签">2. 块级和行内标签</h4>
<ul>
<li>块级</li>
<li>行内</li>
<li>css样式:标签 -&gt; <code>display:inline-block</code></li>
</ul>
<p>示例:行内&amp;块级特性</p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;style&gt;
      .c1{
            display: inline-block;

            height: 100px;
            width: 300px;
            border: 1px solid red;
      }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;span class="c1"&gt;中国&lt;/span&gt;

    &lt;span class="c1"&gt;联通&lt;/span&gt;

    &lt;span class="c1"&gt;联通&lt;/span&gt;

    &lt;span class="c1"&gt;联通&lt;/span&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<p>示例:块级和行内标签的设置</p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;style&gt;

    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div style="display: inline;"&gt;中国&lt;/div&gt;
    &lt;span style="display: block;"&gt;联通&lt;/span&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<p>注意:块级 + 块级&amp;行内。</p>
<h4 id="3字体设置">3.字体设置</h4>
<ul>
<li>颜色</li>
<li>大小</li>
<li>加粗</li>
<li>字体格式</li>
</ul>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;style&gt;
      .c1{
            color: #00FF7F;
            font-size: 58px;
            font-weight: 600;
            font-family: Microsoft Yahei;
      }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class="c1"&gt;中国联通&lt;/div&gt;
    &lt;div&gt;中国移动&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<h4 id="4文字对齐方式">4.文字对齐方式</h4>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;style&gt;
      .c1{
            height: 59px;
            width: 300px;
            border: 1px solid red;

            text-align: center; /* 水平方向居中 */
            line-height: 59px; /* 垂直方向居中 */
      }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class="c1"&gt;郭智&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<h4 id="5浮动">5.浮动</h4>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div&gt;
      &lt;span&gt;左边&lt;/span&gt;
      &lt;span style="float: right"&gt;右边&lt;/span&gt;
    &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<p>div默认块级标签(霸道),如果浮动起来,就不一样了。</p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;style&gt;
      .item{
            float: left;
            width: 280px;
            height: 170px;
            border: 1px solid red;
      }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div&gt;
      &lt;div class="item"&gt;&lt;/div&gt;
      &lt;div class="item"&gt;&lt;/div&gt;
      &lt;div class="item"&gt;&lt;/div&gt;
      &lt;div class="item"&gt;&lt;/div&gt;
      &lt;div class="item"&gt;&lt;/div&gt;
    &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<p>如果你让标签浮动起来之后,就会脱离文档流。</p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;style&gt;
      .item {
            float: left;
            width: 280px;
            height: 170px;
            border: 1px solid red;
      }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div style="background-color: dodgerblue"&gt;
      &lt;div class="item"&gt;&lt;/div&gt;
      &lt;div class="item"&gt;&lt;/div&gt;
      &lt;div class="item"&gt;&lt;/div&gt;
      &lt;div class="item"&gt;&lt;/div&gt;
      &lt;div class="item"&gt;&lt;/div&gt;
      &lt;div style="clear: both;"&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;div&gt;你哦啊呀&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<h4 id="6内边距">6.内边距</h4>
<p>内边距,我自己的内部设置一点距离。</p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;style&gt;
      .outer{
            border: 1px solid red;
            height: 200px;
            width: 200px;

            padding-top: 20px;
            padding-left: 20px;
            padding-right: 20px;
            padding-bottom: 20px;
      }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class="outer"&gt;
      &lt;div style="background-color: gold;"&gt;听妈妈的话&lt;/div&gt;
      &lt;div&gt;
            小朋友你是否下水道发
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;style&gt;
      .outer{
            border: 1px solid red;
            height: 200px;
            width: 200px;
            
            padding: 20px;
      }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class="outer"&gt;
      &lt;div style="background-color: gold;"&gt;听妈妈的话&lt;/div&gt;
      &lt;div&gt;
            小朋友你是否下水道发
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;style&gt;
      .outer{
            border: 1px solid red;
            height: 200px;
            width: 200px;

            padding: 20px 10px 5px 20px;
      }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class="outer"&gt;
      &lt;div style="background-color: gold;"&gt;听妈妈的话&lt;/div&gt;
      &lt;div&gt;
            小朋友你是否下水道发
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<h4 id="7外边距">7.外边距</h4>
<p>外边距,我与别人加点距离。</p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div style="height: 200px;background-color: dodgerblue;"&gt;&lt;/div&gt;
&lt;div style="background-color: red;height: 100px;margin-top: 20px;"&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<h3 id="案例小米商场">案例:小米商场</h3>
<p><img src="https://img2023.cnblogs.com/blog/3186882/202307/3186882-20230701092145957-866058386.png"></p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;style&gt;
      body {
            margin: 0;
      }

      .header {
            background: #333;
      }

      .container {
            width: 1226px;
            margin: 0 auto;
      }

      .header .menu {
            float: left;
            color: white;
      }

      .header .account {
            float: right;
            color: white;
      }

      .header a {
            color: #b0b0b0;
            line-height: 40px;
            display: inline-block;
            font-size: 12px;
            margin-right: 10px;
      }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div class="header"&gt;
    &lt;div class="container"&gt;
      &lt;div class="menu"&gt;
            &lt;a&gt;小米商城&lt;/a&gt;
            &lt;a&gt;MIUI&lt;/a&gt;
            &lt;a&gt;云服务&lt;/a&gt;
            &lt;a&gt;有品&lt;/a&gt;
            &lt;a&gt;开放平台&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="account"&gt;
            &lt;a&gt;登录&lt;/a&gt;
            &lt;a&gt;注册&lt;/a&gt;
            &lt;a&gt;消息通知&lt;/a&gt;
      &lt;/div&gt;
      &lt;div style="clear: both"&gt;&lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<h2 id="总结-1">总结</h2>
<ul>
<li>
<p>body标签,默认有一个边距,造成页面四边都有白色间隙,如何去除呢?</p>
<pre><code class="language-html">body{
        margin: 0;
}
</code></pre>
</li>
<li>
<p>内容居中</p>
<ul>
<li>
<p>文本居中,文本会在这个区域中居中。</p>
<pre><code class="language-html">&lt;div style="width: 200px; text-align: center;"&gt;武沛齐&lt;/div&gt;
</code></pre>
</li>
<li>
<p>区域居中,自己要有宽度 + <code>margin-left:auto;margin-right:auto</code></p>
<pre><code class="language-html">.container{
    width: 980px;
    margin: 0 auto;
}

&lt;div class="container"&gt;
        adfasdf
&lt;/div&gt;
</code></pre>
</li>
</ul>
</li>
<li>
<p>父亲没有高度或没有宽度,被孩子支撑起来。</p>
</li>
<li>
<p>如果存在浮动,一定记得加入 。<br>
<img src="https://img2023.cnblogs.com/blog/3186882/202307/3186882-20230701092146344-1767262644.png"></p>
</li>
<li>
<p>如果想要用别人的样式。<br>
<img src="https://img2023.cnblogs.com/blog/3186882/202307/3186882-20230701092146948-1483058731.png"></p>
</li>
<li>
<p>关于布局不知如何下手。</p>
<p><img src="https://img2023.cnblogs.com/blog/3186882/202307/3186882-20230701092148244-187426815.png"></p>
</li>
</ul><br><br>
来源:https://www.cnblogs.com/wykang/p/17518836.html
頁: [1]
查看完整版本: day11 前端开发