Python之路【第十一篇续】前端之CSS补充

CSS续

1、标签选择器

  为类型标签设置样式例如:<div>、<a>、等标签设置一个样式,代码如下:

    <style>
        /*标签选择器,如果启用标签选择器所有指定的标签讲默认使用此样式*/
        div{
            font-size: 19px;
        }
    </style>

<body>
    <div>
        font size test 19
    </div>
</body>

效果图如下:

2、ID选择器

  为指定的ID设置样式,代码如下:

<style>
        /*ID选择器*/
        #i1{
            background-color:red;
        }

  </style>

<body>
/*为所有id为i1的ID应用样式,注意咱们是为了测试,在实际的生产中ID不能相同*/
<a id="i1"> id 选择器 </a> <a id="i1"> id 选择器 </a> <a id="i2"> 如果ID不同,那么将不会应用样式 </a> </body>

效果图如下:

3、类选择器

  class选择器,id是可以相同的,代码如下:

    <style>
        /*类选择器标签*/
        .cls{
            background-color:blue;
            font-size: 15px;
        }
    </style>
</head>
<body>
    <!--任何类型的标签都可以调用类选择器-->
    <div class="cls">
        class test div
    </div>
    <a class="cls">
        class test a
    </a>
    <span class="cls">
        class test span
    </span>
</body>

注:上面的3个选择器一般不要用标签&id选择器,用类选择器就可以

4、关联选择器

<head>
    <meta charset="UTF-8">
    <title>shuaige</title>

    <style>
        /*为一个标签应用了,类选择器,下的li标签设置样式*/
        .container li{
            background-color: pink;
        }
    </style>
</head>
<body>
    <!--下面的div应用了container类选择器,那么他下面的所有的li标签将应用上面设置的样式-->
    <div class="container">
        <div style="height: 20px;background-color: red;">
            test
        </div>
        <ul>
            <li>
                li1
            </li>
            <li>
                li2
            </li>
            <li>
                li3
            </li>
        </ul>
    </div>
</body>

关联选择器

效果图如下:

关联选择器:应用场景为某标签下面的标签设置指定的样式:

下面的代码就是为应用了这个类选择器的标签下面的所有li标签设置样式

        .container li{
            background-color: pink;
        }

问:如果在上面的代码基础上为li标签下的a标签设置样式怎么办呢?在li后面再加个a即可!

        .container li a {
            background-color: pink;
        }

OK 看下面的代码

    <style>
        /*关联选择器:为应用了container下面的子元素下应用了l类选择器下面的应用了p类选择器设置样式*/
        .container .l .p {
            background-color: pink;
        }
    </style>
</head>
<body>

    <div class="container">
        <div class="l">
            test
                <div>
                    <ul>
                        <!--这里需要注意,他们只要是有包换关系就行,不一定非得挨着-->
                        <li class="p">
                            hello shuaige
                        </li>
                    </ul>
                </div>

        </div>

    </div>

效果图如下:

5、组合选择器

有这么一个场景,看下面的关联组合器,cc1和cc2都要使用相同的样式怎么办?重写一遍?

            .container .a .cc1 {
                background-color: pink;
            }
            .container .a .cc2 {
                background-color: pink;
            }

解决方法代码如下:组合选择器1

            .container .a .cc1,.container .a .cc2  {
                background-color: pink;
            }

上面cc1后面的“逗号”就是或的关系,如果路径都是相同的话可以进行改良代码如下:

            .container .a .cc1,.cc2  {
                background-color: pink;
            }

这里组合的时候他是按照第一个出现的逗号来进行处理的,看下面的代码:

            /*组合选择器*/
            .container b ,.a .cc1,.cc2  {
                background-color: pink;
            }
            /*组合选择器分解,上面的分解完成之后谁来应用:background-color: pink;这个样式呢?*/
            .container b
            .container b .a .cc1
            .container b .cc2       ......这里需要注意,“逗号”是或的关系,一般这个不常用,常用的是上面的方法

 6、属性选择器

写表单验证的时候最常用,举个例子来说看下面的代码:

我要在这么input下找到type为text的标签并且给他设置样式,在上面咱们知道了组合标签,但是组合选择器最小单元是标签,他不能定位到type属性

    <div>
        <input type="text" />
        <input type="password" />
        <input type="file" />
        <input type="checkbox"/>
        <input type="button"/>
        <input type="reset"/>
    </div>

怎么做呢?在组合选择器后面加个[type=“text”]即可

    <style>
        /*input和[之间不能有空格]*/
        .con input[type="text"] {
            border:3px solid red;
        }
    </style>

效果如下:

需求又来了,我想找到input标签为type为text并且name为“shuaige”的那个input标签

    <div class="con">
        <input type="text" />
        <input type="text" name="shuaige"/>
        <input type="password" />
        <input type="file" />
        <input type="checkbox"/>
        <input type="button"/>
        <input type="reset"/>
    </div>

解决方法:在增加一个属性就行了(注意中括号之间没有空格不会报错但是没有效果),代码如下:

    <style>
        /*input和[之间不能有空格]*/
        .con input[type="text"][name="shuaige"] {
            border:3px solid red;
        }
    </style>

效果图如下:

属性标签经常用,要记住

也可以使用自定义属性来定义,并且所有的标签都可以使用自定义属性:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>shuaige</title>
    <style>
        /*input和[之间不能有空格]*/
        .con input[type="text"][alex="shuaige"] {
            border:3px solid red;
        }
    </style>
</head>
<body>
    <div class="con">
        <input type="text" />
        <input type="text" alex="shuaige" />
        <input type="password" />
        <input type="file" />
        <input type="checkbox"/>
        <input type="button"/>
        <input type="reset"/>
    </div>

</body>

</html>

属性选择器&自定义属性

 7、background-position 图片位移

应用场景,在实际的生产环境中咱们在网页上看到的小图片不是一个一个的零散的小图片的,咱们只是看到了大图片的一部分。比如一个大图片,我只让他显示一部分并不全部显示怎么做?

可以这么想:

有一个窗口,你在窗口的一边,只能通过窗口来看外面,你不能动,我们可以通过移动这个窗口来让你看到不同的场景,当然你看到的大小和窗口的大小有关!

代码如下:

    <style>
        .chuangkou{
            /*定义一个图片*/
            background-image: url(‘content_images.jpg‘);
            /*定义一个窗口,指定长和宽*/
            height: 30px;
            width:30px;
            /*设置图片不重复*/
            background-repeat:no-repeat;
            background-position: 3px 10px ;
        }
    </style>

<body>
    <div class="chuangkou">

    </div>
</body>

效果图如下:

8、内、外边距

内边距,代码如下:

    <div style="background-color: green;height: 200px;">

        <div style="margin-left: auto;
                    margin-right:auto;
                    background-color: blue;
                    height: 20px;
                    width:20px;
                    ">
        </div>
    </div>

效果图如下:

我要达到让蓝色在中间的效果怎么办呢?在绿色的基础上在进行填充,代码如下:

 我在原有的绿色的div标签内部的顶端又填充了100px这样看起来的效果就变成蓝色的在中间了

外边框

同样的图下面,我在蓝色的方框外面的顶部增加30px效果就向往下移动了30px

    <div style="background-color: green;height: 100px;padding-top: 100px;">

        <div style="margin-left: auto;
                    margin-right:auto;
                    background-color: blue;
                    height: 20px;
                    width:20px;
                    margin-top: 30px;
                    ">
        </div>
    </div>

效果图如下:

这里需要注意:使用padding会继承原有的颜色在内部填充,使用margin在外面扩张并且没有颜色

如果padding&margin不指定在上、下、左、右增加边框的话默认上下左右都添加边框!

9、定位position

position的四个属性值:

  1. static
  2. fixed
  3. relative
  4. absolute

1、position的默认值,一般不设置position属性时,会按照正常的文档流进行排列。

2、fixed是特殊的absolute,即fixed总是以body为定位对象的,按照浏览器的窗口进行定位。

举例,代码如下:

<body>
    <div style="height:2000px;background-color: blueviolet;">
        <!--这里设置position:fixed 并且靠右边和底部各30px-->
        <a style="position: fixed;right: 30px;bottom: 30px;">
        跳转到顶部
        </a>
    </div>
</body>

3、relative

代码如下:

<head>
    <meta charset="UTF-8">
    <title>shuaige</title>
    <style>
        #sub1
        {
            position: relative;
            padding: 5px;
            top: 5px;
            left: 5px;
        }
    </style>
</head>
<body>
    <div  id="parent">
         <div style="background-color:blueviolet;" id="sub1">sub1</div>
         <div style="background-color:blue;" id="sub2">sub2</div>
    </div>
</body>

显示效果如下:

注:

sub1这个div如果没有设置:position: relative会按照正常的文档位置进行定位,如果设置了,并给他设置了边距那么,他会根据他本身进行偏移,并且他的偏移不影响sub2。

4、absolute

absolute这个属性总是有人给出误导。说当position属性设为absolute后,总是按照浏览器窗口来进行定位的,这其实是错误的。实际上,这是fixed属性的特点。

当sub1的position设置为absolute后,其到底以谁为对象进行偏移呢?这里分为两种情况:

  1. 当sub1的父对象(或曾祖父,只要是父级对象)parent也设置了position属性,且position的属性值为absolute或者relative时,也就是说,不是默认值的情况,此时sub1按照这个parent(在父对象内)来进行定位。
  2. 如果sub1不存在一个有着position属性的父对象,那么那就会以body为定位对象,按照浏览器的窗口进行定位,这个比较容易理解

代码如下:

    <div style="position:relative;background-color: blue;height:100px;">
        <!--当sub1的父对象(或曾祖父,只要是父级对象)parent也设置了position属性-->
        <div style="position:absolute;right: 0px;bottom:0px;background-color: blueviolet">su1</div>
    </div>
    <div style="background-color: blueviolet;height: 2000px;">
        <!--如果父对象内没有,positionabsolute或者relative时,那么会按照你打开网页时的位置进行固定,然后滑动浏览器的时候也随之变化-->
        <div style="position:absolute;right: 30px;bottom: 30px;">
            su1
        </div>
    </div>

10、样式:overflow

应用场景,有这么一种情况,在一个div内有很多的的内容,如果div的框体不是很大超出去了怎么办?详细情况如下图,代码

代码如下:

    <div style="height:100px;background-color:green;">
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
    </div>

效果图如下:

解决方法:增加overflow样式,代码如下:

    <div style="overflow:auto;height:100px;background-color:green;">
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
        tianshuai <br/>
    </div>

效果就会,在div块级标签内有个滚动条

还有一个样式:hidden超出div区域的将会自动隐藏

<div style="overflow:hidden;height:100px;background-color:green;">

11、透明度

透明度,用的比较多,需要注意,简单代码例子如下:

    <div style="background-color:blue;height:100px;padding-top:30px">
        <!--这里设置内部的div的透明度-->
        <div style="opacity: 0.5;background-color:pink;height:30px;margin-left: 30px;margin-right:30px;">

        </div>
    </div>

效果图如下:

12、z-index

用来设置展示在浏览器中的页面的层级

jQuery

时间: 2024-10-10 05:34:31

Python之路【第十一篇续】前端之CSS补充的相关文章

Python开发【第二十一篇】:Web框架之Django【基础】

Python开发[第二十一篇]:Web框架之Django[基础] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5237704.html Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 基本配置 一.创建django程序 终端命令:django-a

Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. Memc

Python之路【第二篇】:Python基础(一)

Python之路[第二篇]:Python基础(一) 入门知识拾遗 一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 2 3 if 1==1:     name = 'wupeiqi' print  name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 1 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为假:result = 值2 三.进制 二进制,01 八进

Python之路【第九篇】:Python基础(26)——socket server

socketserver Python之路[第九篇]:Python基础(25)socket模块是单进程的,只能接受一个客户端的连接和请求,只有当该客户端断开的之后才能再接受来自其他客户端的连接和请求.当然我 们也可以通过python的多线程等模块自己写一个可以同时接收多个客户端连接和请求的socket.但是这完全没有必要,因为python标准库已经为 我们内置了一个多线程的socket模块socketserver,我们直接调用就可以了,完全没有必要重复造轮子. 我们只需简单改造一下之前的sock

七日Python之路--第十一天

(一)关于模板,Template 可以在项目根目录下的settings.py 配置文件中,声明 import os BASE_DIR = os.path.dirname(os.path.dirname(__file__)) TEMPLATE_DIRS = os.path.join(BASE_DIR, 'templates') 这样模板的默认搜索就是在根目录的'templates'文件下进行寻找. 但是,感觉还是不声明,直接使用默认的搜索路径比较好.当不进行声明时,默认搜索路径是相应的app应用目

Python之路(十一):面向对象(进阶)

python基础之面向对象(进阶篇) 上篇回顾 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个"函数"供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 静态属性(@property) 特点:将函数属性伪装成数据属性(封装逻辑) 静态方法(@staticmethod) 跟类和实例无关系,名义上归属类管理,但不能使用类变量和实例变

Python之路【第十一篇续】前端初识之CSS

css解释 css样式: css是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化,CSS的可以使页面更加的美观.基本上所有的html页面都或多或少的使用css. 存在方式有三种:元素内联.页面嵌入和外部引入 语法:style = 'key1:value1;key2:value2;' 在标签中使用 style='xx:xxx;' 在页面中嵌入 < style type="text/css"> </style > #在头部

Python之路【第十一篇】前端初识之HTML

HTML HTML解释: HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器根据标记语言的规则去解释它. 浏览器负责将标签翻译成用户“看得懂”的格式,呈现给用户! #超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分.网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如

Python【第十四篇续】前端之CSS

css概念 上一篇介绍HTML时,已经说了,如果把HTML比作一个裸男的话,那么CSS就是为这个裸男穿上衣服,搭配一些换看的发型. 官方的术语是,css是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化,CSS的可以使页面更加的美观.基本上所有的html页面都或多或少的使用css. css选择器 存在的方式有三种: 元素内联(直接在标签中使用) 语法为:style='xxx:xxxxx' 页面嵌入  语法如:< style type="text/c