python web开发(三)—— CSS样式

news2024/12/28 3:23:45

文章目录

  • 概要
    • 1.快速了解
    • 2.使用方式
    • 3. CSS选择器
    • 4. 多个属性类联合使用
  • 样式
    • 1. 高度和宽度
    • 2. 块级和行内标签
    • 3. 字体设置
    • 4. 文字对齐方式
    • 5. 浮动
    • 6. 内边距
    • 7.外边距
    • 8. 内容居中
    • 9.body标签
    • 10. hover(伪类)
    • 11. 设置透明度
    • 12. after(伪类)
    • 13. position
    • 14. 边框border
    • 15. 背景色background-color
    • 注意事项
  • 参考

概要

1.快速了解

如下代码,其中style参数就可看成CSS,主要作用是修改对象的样式,使得网页更加美观

<img src="xxxx" style="height:100px">
<div style="color:red"> i love china </div>

2.使用方式

(1)应用在标签里,如上所示的代码块
(2)应用在HTML的head里,具体如下,现在head标签中通过style标签定义一个类c1,然后body中应用该类即可;该类方法适用于多个标签共用相同样式
在这里插入图片描述
得到如下效果
在这里插入图片描述
(3)写在文件里,如下,在static/css目录下创建common.css文件,并在html文件中head中导入css文件;此方法适用于不同html文件中使用相同的样式

.c1{
    height: 100px;
}


.c2{
    color: blue;
}

在html文件中导入样式
在这里插入图片描述

3. CSS选择器

CSS的选择器可简单的看作是使用方式的一种扩展,如下所示,有三种使用方式

  • ID选择器
    如下代码,现在head标签中定义id选择器,以#开头;使用时在相关标签中设置id属性
<!--定义id-->
#c1 {
	color: red;
}

<!--使用id-->
<div id='c1'></div>
  • 类选择器
    类选择器经常使用,如第二章节所述。定义类时以.开头,使用时在相关标签中设置class属性即可
<!--定义类-->
.c1 {
	color: red;
}

<!--使用类-->
<div class='c1'></div>
  • 标签选择器
    首先在head中定义标签属性,此处以div 标签为例,实际可以是任意标签,定义完后该标签对应的属性都将发生变化
div{
	color: red;
}

<div>xxx</div>
  • 属性选择器
    如下所示,将所有属性type=textinput标签设置边框
<head>
    <title>Document</title>
    <link rel="stylesheet" href="/static/commons.css">
    <style>
        input[type="text"]{
        border: 1px solid red;
    }
    </style>
</head>

还可像下面这种方式设置,即将v1类中xx属性等于456的标签设置成相关的属性

<style>
    .v1[xx="456"]{
        color: gold;	<!-- 橙色 -->
    }
</style>

...

<body>
...
    <div class="v1" xx="123">a</div>
    <div class="v1" xx="456">b</div>
    <div class="v1" xx="789">c</div>
...
</body>
  • 后代选择器
    如下代码可让zz类下的所有h2子标签都生效,注意在style标签中引用的方式.zzh2中间有空格
<head>
<style>
    .zz h2{
        color:chartreuse;
    }
</style>
</head>

<body>

    <div class="zz" >
        <div>
            <h2>我是div里面的h2</h2>
        </div>
        <h2>我是div外面的h2</h2>
...

如果只想让第一层的h2生效(儿子层生效,孙子层不生效),可以添加>

<style>
    .zz > h2{
        color:chartreuse;
    }
</style>

4. 多个属性类联合使用

引用多个类时用空格分开,如下所示。注意类的优先级与引用的顺序无关,只与定义时类的前后顺序有关,如下在<style>中定义类时,c2排在c3的前面,因此c2的优先级小于c3,即如果c2和c3中有相同的属性,比如颜色,那么c2的属性会被c3的属性覆盖,如果不想让c2被c3覆盖,在其后面增加! important

<style>
    .c2 {
        color: darkgoldenrod;
        <!--不被覆盖-->
        <!--color: darkgoldeneod !important;-->
    }

    .c3 {
        color:hotpink;
    }
</style>

<body>
    <div class="c2 c3">我是天才</div>
</body>

样式

1. 高度和宽度

在这里插入图片描述
结果如下
在这里插入图片描述
注意事项

  • 宽度支持百分比,但是高度不支持百分比,因为宽度有最大值,而高度可以很长
      .c1{
        height: 200px;
        width: 50%;
      }
  • 宽度和高度默认对行内标签无效,如span;默认对块级标签有效,比如div,但是块级标签比较霸道,即使设置了较小宽度,其他东西也无法放到其后面,仍然占据一行

2. 块级和行内标签

  • display+行内标签display:inline-block
    在这里插入图片描述
    效果如下:块内标签的高和宽可以改变,同时可以将不同模块放到一行(融合了块内标签和块级标签的特征)
    在这里插入图片描述
  • 块级标签和行内标签的转换
    如下所示,通过设置display,可以将span设置成块级标签,也可将div设置成行内标签
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>inline block</title>
</head>
<body>
  <span style="display: block"> hello word</span>
  <div style="display: inline"> my name is candy</div>
  <div style="display: inline"> nice to meet you</div>
</body>
</html>

效果如下:
在这里插入图片描述

3. 字体设置


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    .c1{
      font-family: Microsoft YaHei UI;  /*字体*/
      color: red;   /*颜色*/
      font-size: 50px;     /*字体大小*/
      font-weight: 400;    /*加粗*/
    }
  </style>
</head>
<body>

<div>hello word</div>
<div class="c1">你好</div>

</body>
</html>

效果
在这里插入图片描述

4. 文字对齐方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    .c1{
        height: 50px;
        width: 200px;
        border: antiquewhite 2px solid;
        text-align: center;   /* 文字水平居中*/
        line-height: 50px;   /* 文字垂直居中,设置值与高度一致自动居中*/
    }
  </style>
</head>
<body>

<div>hello word</div>
<div class="c1">你好</div>

</body>
</html>

效果
在这里插入图片描述

5. 浮动

<div>
  <span>左边</span>
  <span style="float: right">右边</span>
</div>

如上代码所示,正常情况下左边右边两个词都是靠左并且连着,当加入float样式后,其效果变成如下图所示。注意当块级标签如div,设置成float时,块级标签就不会“霸道”,可以改变其宽和高
在这里插入图片描述

注意在设置完浮动后,最后需要增加<div style="clear:both">,否则父标签的效果无法生效(被浮动的部分覆盖了);如下代码所示,子div中采用c1类设置属性,设置了向右浮动,在父div中设置了style背景颜色,如果缺少 <div style="clear: both"></div>这行代码,则背景颜色的style将无法生效。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    .c1{
        float: right;
        height: 50px;
        width: 200px;
        border: antiquewhite 2px solid;
        text-align: center;   /* 文字水平居中*/
        line-height: 50px;   /* 文字垂直居中,设置值与高度一致自动居中*/
    }
  </style>
</head>
<body>
  <div style="background-color: red">
    <div class="c1">hello word</div>
    <div class="c1">你好</div>
    <div class="c1">你好</div>
    <div class="c1">你好</div>
    <div class="c1">你好</div>
    <div style="clear: both"></div>
  </div>
</body>
</html>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

6. 内边距

按如下所示的style设置风格

  <style>
    .c1 {
      height: 50px;
      width: 100px;
      border: antiquewhite 2px solid;
      text-align: center; /* 文字水平居中*/
      line-height: 50px; /* 文字垂直居中,设置值与高度一致自动居中*/
      padding-top: 10px;  /* 设置顶部边距*/
      padding-bottom: 10px;   /* 设置底部边距*/
      padding-left: 10px;
      padding-right: 10px;
    }
  </style>

效果如下,设置了上下左右各10px的边距。同时上边通过4个代码设置了上下左右边距,可以简写为pdding:10px,即可同时设置上下左右的边距
在这里插入图片描述

7.外边距

如下通过margin-top设置外边距,同理还有margin-left margin-right margin-button

<body>
  <div style="background-color: aquamarine">
    hello word
  </div>
  <div style="margin-top: 20px; background-color: blue">你好</div>
</body>

效果如下在这里插入图片描述
注意内边距会改变div的大小,外边距不会,外边距只会改变间隔大小

8. 内容居中

  • 文本居中:文本会在指定标签区域中居中
<div style="text-align:center">hello word</div>
  • 内容居中:一整块内容在整个页面中居中
    要有自己的宽度+margin-left:auto+margin-right:auto
.container{
width: 920px;
margin: 0 auto   /* 上方margin=0,左右为自动*/
}

9.body标签

默认body标签有一个边距,会造成页面四边都有白色间隙,增消除?

body{
	margin:0;
}

10. hover(伪类)

放上鼠标字体颜色发生改变(一般放在具有链接的文字中)

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

  <style>
    body{
      margin:0  /*取消四周默认边距*/
    }

    /* 中间内容居中 */
    .container{
      margin: 0 auto;
    }

    .c1 {
      height: 50px;
      width: 1128px;
      border: antiquewhite 2px solid;
      text-align: center; /* 文字水平居中*/
      line-height: 50px; /* 文字垂直居中,设置值与高度一致自动居中*/
      padding-top: 10px;  /* 设置顶部边距*/
      padding-bottom: 10px;   /* 设置底部边距*/
      padding-left: 10px;
      padding-right: 10px;
    }

    .c1 a{
        margin: 0 20px;
        color: black;    /* 设置字体颜色 */
        text-decoration: none;    /* 取消字体下方的下划线*/
    }

    a:hover{
      color: red;   /* 放置鼠标时字体颜色改变为红色*/
    }

  </style>
</head>
<body>
  <div class="c1 container" style=background-color:azure>
    <a href="https://www.baidu.com/">百度</a>
    <a href="https://www.google.com">谷歌</a>
    <a href="https://www.weibo.com">微博</a>
  </div>
</body>
</html>

在这里插入图片描述
注意hove不仅仅可以设置字体颜色,还可设置边框、字体大小等其他属性,通过设置属性display:none/block控制一些标签的隐藏/显示

如下代码所示,指定标签下的某个类设置hover

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .c1 {
            color:brown;
        }
        .c1:hover {
            color: green;
            font-size: 20px;
        }

        .c2 {
            width: 300px;
            height: 300px;
            border: 3px solid red;
        }
        .c2:hover {
            border: 3px solid green;
        }

        .download {
            display: none;
        }

        .app:hover .download {
            display: block;
        }

    </style>
</head>
<body>
    <div class="c1">字体碰到鼠标变成绿色</div>
    <div class="c2">边框碰到鼠标变成绿色</div>
    <div class="app">
        <div>鼠标放我这里触发显示二维码</div>
        <div class="download">
            <img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/78c30d4f259ed43ab20e810a522a6249.png" alt="">
        </div>
    </div>
</body>
</html>

11. 设置透明度

opacity:0.5 取值从0-1

12. after(伪类)

在一些标签内容后面增加内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .c1:after {
            content: "大帅比"
        }
    </style>
</head>
<body>
    <div class="c1">张三</div>
</body>
</html>

输出显示:张三大帅比

after一般应用在float场景中,不用每次都写style=“clear: both;”,下面的after语句就相当于在clearfix类的div标签里的最后增加<div style="clear:both"></div>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .clearfix:after {
            content: "";
            display: block;
            clear: both;
        }

        .item {
            float: left;
        }

    </style>
</head>
<body>
    <div class="clearfix">
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
    </div>
</body>
</html>

13. position

将某部分固定在网页的相关位置,不会随着鼠标拖动而改变
有三种模式分别是

  • fixed
  • relative
  • absolute

(1) fixed: 完全固定在指定位置
长用于网页中的返回顶部 对话框

.back {
     position: fixed;   /* 模式 */
     width: 60px;   /* 固定框的宽度 */
     height: 60px;     /* 固定框的高度 */
     border: 1px solid red;

     right: 50px;      /* 固定位置:离最右边的距离 */
     bottom: 50px;      /* 固定位置:离最下边边的距离,还可设置left top*/
 }
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
        body {
            margin: 0;
        }

        .dialog {
            position: fixed;
            height: 300px;
            width: 500px;
            background-color: white;

            left: 0;
            right: 0;
            margin: 0 auto;
            
            top: 200px;

            z-index: 1000;  /* 防止对话框被mask遮住 */
        }

        .mask {
            background-color: black;
            position: fixed;
            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            opacity: 0.7;

            z-index: 999;   /* 防止对话框被mask遮住 */
        }

    </style>
</head>
<body>
    <div style="height: 1000px;"></div>
    <!-- 如果css中不加 z-index 设置优先级的话 -->
    <!-- 那么下面的 dialog 如果在 mask 的上面,对话框就显示不出来了 -->
    <!-- 设置优先级可以解决此问题 -->
    <div class="dialog"></div>
    <div class="mask"></div>
</body>
</html>

在这里插入图片描述
(2) relative absolute 联合使用
相对于某个“框”存在

...
        .app{
            position: relative;
        }

        .app .download {
            position: absolute;
            display: none;
            height: 100px;
            width: 100px;
        }

        .app:hover .download {
            display: block;
        }

    </style>

</head>
<body>
    <div class="header">
        <div class="container">
            <div class="menu">
                <a href="https://www.mi.com">小米商城</a>
                <a href="https://www.mi.com">MIUI</a>
                <a href="https://www.mi.com">云平台</a>
                <a href="https://www.mi.com">有品</a>
                <a href="https://www.mi.com">小爱开放平台</a>
                <a href="https://www.mi.com" class="app">app下载
                    <div class="download">
                        <img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/78c30d4f259ed43ab20e810a522a6249.png" alt="">
                    </div>
                </a>
            </div>
            <div class="account">
                <a href="https://www.mi.com">登录</a>
                <a href="https://www.mi.com">注册</a>
                <a href="https://www.mi.com">消息通知</a>
            </div>'
            <div style="clear: both;"></div>
        </div>
    </div>
...

14. 边框border

border: 1px solid red 代表边框1像素,实线(dotted代表虚线) 红色(transparent透明色)
border-left: 1px solid green 只要左边的边框

15. 背景色background-color

background-color: green

注意事项

  • a标签默认时行内标签,内外边距标签高度设置时默认无效,需要通过display设置成块级标签才可生效
  • 设置垂直居中:
    • line-hight只对文本生效
    • 图片需要通过边距来设置
  • a标签默认字体下带下划线,需要通过设置text-decoration:none 将下划线取消

参考

Django web开发(一) - 前端
B站视频-Django web开发

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/599954.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SSH服务详解

1 SSH服务 1.1 SSH服务协议 SSH 是 Secure Shell Protocol 的简写&#xff0c;由 IETF 网络工作小组&#xff08;Network Working Group )制定&#xff1b;在进行数据传输之前&#xff0c;SSH先对联机数据包通过加密技术进行加密处理&#xff0c;加密后在进行数据传输。确保…

机器学习集成学习——Adaboost分离器算法

系列文章目录 机器学习之SVM分类器介绍——核函数、SVM分类器的使用 机器学习的一些常见算法介绍【线性回归&#xff0c;岭回归&#xff0c;套索回归&#xff0c;弹性网络】 机器学习相关概念思维导图 文章目录 系列文章目录 前言 Adaboost算法的简单介绍 Adaboost算法相…

如何将Chrome浏览器重置为默认设置?

如何将Chrome浏览器重置为默认设置&#xff1f; 将 Chrome 设置重置为默认设置 您可随时在 Chrome 中恢复您的浏览器设置。如果所安装的应用或扩展程序在您不知情的情况下更改了设置&#xff0c;那么您可能需要这样做。不过&#xff0c;您保存的书签和密码不会被清除或更改。 …

数据库 期末复习(4) 概念数据库的设计

参考资料 :邹老师数据库课件 程老师数据库课件 战老师数据库课件 第一部分 为啥要引入概念数据库 感觉只有一个重点 实体联系模型----ER模型 第二部分-----实体联系模型 这个例子可以全看完之后再来看 举个例子:根据COMPANY数据库的需求来构造数据库模式&#xff1a;The com…

工业控制系统的设备如何加密防勒索病毒

场景描述 信息化时代发展迅速&#xff0c;数据防泄露一词也频繁的出现在我们身边。无论企业或政府单位&#xff0c;无纸化办公场景越来越多&#xff0c;数据泄露的时间也层出不穷。例如&#xff1a;世界最大职业中介网站Monster遭到黑客大规模攻击&#xff0c;黑客窃取在网站注…

Flume的安装和使用

安装Flume 1.1访问Flume的官网&#xff08;http://flume.apache.org/download.html&#xff09;&#xff0c;下载Flume安装apache-flume-1.9.0-bin.tar.gz。或者下载我的百度网盘资源。把安装文件解压缩到windows操作“D:\”目录下&#xff0c;然后执行如下命令测试是否安装成…

JavaEE Servlet的API详解

Servlet的API详解O(∩_∩)O~&#xff1a; 文章目录 JavaEE & Servlet的API详解1. HttpServlet抽象类1.1 init方法1.2 destroy方法1.3 service方法 2. HttpRequest接口2.1 在浏览器上显示请求首行2.2 在浏览器上显示请求header2.3 getParameter方法 - 最常用的API之一2.4 js…

【MAC】nvm安装和使用

傻瓜式使用教程如下&#xff0c;不用担心443 和 mac的文件夹权限问题 &#xff01; 1.将nvm包clone下来并克隆到nvm 文件夹中 打开终端后执行&#xff1a; git clone https://gitee.com/mirrors/nvm.git ~/.nvm2.激活nvm sudo source ~/.nvm/nvm.sh接着就可以通过nvm ls命令…

2023/6/1总结

学习CSS 动画&#xff1a; 2023-05-31 21-48-43-504 效果图&#xff1a; 2023-06-01 13-58-26-168 3D转换 3D移动&#xff1a; transform:translateX() 在x轴移动 transform:translateY() 在y轴移动 transform:translateZ() 在z轴移动 transform:translate3d(x,y,z); …

程序设计综合实习(C语言):链表的创建

一、目的 1&#xff0e;掌握单向链表的概念 2&#xff0e;掌握单向链表的创建、查找、删除方法 二、实习环境 Visual Stdio 2022 三、实习内容、步骤与要求 1&#xff0e;创建一个单向链表&#xff0c;存放10个学生的学号&#xff0c;姓名&#xff0c;并输出这种10个学生的信…

分布式锁框架-Redisson

分布式锁框架-Redisson 一、Redisson介绍二、在SpringBoot中使用Redisson三、Redisson工作原理四、Redisson使用扩展4.1、Redisson单机连接4.2、Redisson集群连接4.3、Redisson主从连接 五、分布式锁总结5.1、分布式锁特点5.2、锁的分类5.3、Redission的使用 基于Redis看门狗机…

chatgpt赋能python:Python以图搜图:如何用Python优化SEO?

Python以图搜图&#xff1a;如何用Python优化SEO&#xff1f; 随着搜索引擎算法的普及&#xff0c;优化您的SEO策略需要更多的创意和技巧。一种方法是使用Python以图搜图&#xff0c;具有该技能可以使您的网站上升到搜索结果列表的顶部。在这篇文章中&#xff0c;我们将探讨Py…

在外部编译器中使用pyqgis

pyqgis_dragonzoebai的博客-CSDN博客 升级后整理 例如在vscode当中添加qgis提供的python解释器&#xff0c;那么就可以使用qgis.core等库 批量处理gdb文件夹&#xff0c;导出对应文件夹目录的geojson文件。 我的gdb文件均没有坐标系&#xff0c;因此需要自己设置正确的坐标系…

chatgpt赋能python:Python网页的SEO优化指南

Python 网页的 SEO 优化指南 在如今互联网高度竞争的时代&#xff0c;一个网站的优化已经成为了至关重要的一环&#xff0c;特别是 SEO 优化。而对于使用 Python 开发网站的人来说&#xff0c;如何进行 SEO 优化&#xff0c;也是需要着重考虑的问题。本文将介绍一些 Python 网…

BGP选路规则实验

1、BGP选路规则实验-基础配置 1&#xff09;拓扑 2&#xff09;基础配置 第一步&#xff1a;基础配置&#xff1a; R1的配置&#xff1a; sysname R1 # interface GigabitEthernet0/0/0 ip address 192.168.12.1 255.255.255.0 # interface GigabitEthernet0/0/1 ip addres…

DeiT详解:知识蒸馏的Transformer

DeiT详解&#xff1a;知识蒸馏的Transformer 0. 引言1. ViT2. DeiT2.1 知识蒸馏2.1.1 提出背景2.1.2 理论原理 2.2 DeiT模型 3. 总结 0. 引言 针对 ViT 需求数据量大、运算速度慢的问题&#xff0c;Facebook 与索邦大学 Matthieu Cord 教授合作发表 Training data-efficient i…

工控机设备安全-系统加固分析

工控设备安全现状 工业控制系统是支撑国民经济的重要设施&#xff0c;是工业领域的神经中枢。现在工业控制系统已经广泛应用于电力、通信、化工、交通、航天等工业领域&#xff0c;支撑起国计民生的关键基础设施。 随着传统的工业转型&#xff0c;数字化、网络化和智能化的工…

倾斜摄影三维模型数据的高程偏差修正的几何纠正技术方法探讨

倾斜摄影三维模型数据的高程偏差修正的几何纠正技术方法探讨 倾斜摄影是一种先进的数字摄影技术&#xff0c;可以生成高分辨率、高精度的三维模型数据。然而&#xff0c;在倾斜摄影中&#xff0c;由于相机的倾斜角度和地形的高程差异&#xff0c;可能会出现高程偏差问题。为了…

Java性能权威指南-总结4

Java性能权威指南-总结4 Java性能调优工具箱操作系统的工具和分析CPU运行队列磁盘使用率网络使用率 Java监控工具基本的VM信息 Java性能调优工具箱 操作系统的工具和分析 CPU运行队列 快速小结 检查应用性能时&#xff0c;首先应该审查CPU时间。优化代码的目的是提升而不是…

树莓派初体验:开机啦

感谢大佬的赞助&#xff0c;这玩意是真的贵哇&#xff0c;呜呜呜呜呜呜&#xff0c;根本买不起 一、烧录系统 需要&#xff1a;SD卡&#xff08;推荐16G&#xff09;、读卡器&#xff08;推荐高速读卡器&#xff09; 进入官网&#xff1a;https://www.raspberrypi.com/softwa…