• 前端 初级篇(CSS)


    CSS 简介

    css是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化。

    存在方式有三种:元素内联、页面嵌入和外部引入,比较三种方式的优缺点。

    语法:style = 'key1:value1;key2:value2;'
         在标签中使用 style='xx:xxx;'
         在页面中嵌入 < style type="text/css"> </style > #在头部指定CSS样式
         引入外部css文件

    优先级:标签>页面镶入>外部,这个仅限同样的样式冲突是才有用。

    必要性:美工会对页面的色彩搭配和图片的美化负责,开发人员则必须知道是如何实现的。

    元素内联:
    直接在标签上应用:代码如下
        <p style="background-color: aqua">
                Jason
        </p>

     效果如下:

    页面嵌入
    在头部写好css样式然后应用:代码如下
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            /*标签选择器,找到所有的标签应用以下样式*/
            div {
                background-color: red;
                color: blue;
            }
            /*id选择器,找到标签id等于i1的标签,应用以下样式*/
            #i1 {
                font-size: 56px;
                color: green;
            }
            /*class选择器,找到class=c1的所有标签,应用一下样式*/
            .c1 {
                background-color: pink;
            }
            /*层级选择器,找到 class=c2 下的div下的p下的class=c3标签,应用以下样式*/
            .c2 div p a{
                background-color: yellow;
            }
              /*组合选择器,找到class=c4,class=c5,class=c6,的标签,应用以下样式*/
            .c4,.c5,.c6{
                background-color: green;
            }
        </style>
    </head>
    <body>
        <div>
            <div>div style</div>
            <div class="c1">c1style</div>
            <div id="i1">id style</div>
        </div>
        <div class="c2">
            <div></div>
            <div>
                <p>
                    <span>oo</span>
                    <br/>
                    <a >c2 div p a style</a>
                </p>
            </div>
        </div>
    </body>
    </html>

     效果如下:

    外部引用

    写一个独立的文件存储css样式代码如下:建议(在样式文件里加上标注防止出现遗忘)

    代买如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <!--这里通过link导入样式,有点类似与python导入模块中的import *-->
        <link rel="stylesheet" href="common.css" />
    </head>
    <body>
        <div>外部引用</div>
    </body>
    </html>

    效果如下:

    标签应用,为指定标签统一设置格式:可以给div这样的标签设定自己想要的格式,也可相对已经定义好的容器设定样式代码如下:

    <style>
            /*标签选择器,找到所有的标签应用以下样式*/
            div {
                background-color: red;
                color: blue;
            }
            /*id选择器,找到标签id等于i1的标签,应用以下样式*/
            #i1 {
                font-size: 56px;
                color: green;
            }
            /*class选择器,找到class=c1的所有标签,应用一下样式*/
            .c1 {
                background-color: pink;
            }
            /*层级选择器,找到 class=c2 下的div下的p下的class=c3标签,应用以下样式*/
            .c2 div p a{
                background-color: yellow;
            }
              /*组合选择器,找到class=c4,class=c5,class=c6,的标签,应用以下样式*/
            .c4,.c5,.c6{
                background-color: green;
            }
        </style>

    CSS常用属性

    background  【背景】

    background-color  背景颜色   代码如下:

        <p style="background-color: red">
                Hello,Jason
        </p>

    background-image 背景图片   代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title></title>
    <style>
    .img{
    /*背景颜色*/
    background-color: #67b168;
    /*引用的背景图片,可以为相对路径*/
    background-image: url("4.gif");
    height: 150px;
    400px;
    /*图片不重复*/
    background-repeat: no-repeat;
    }
    .img2{
    background-image: url("2.jpg");
    height: 50px;
    50px;
    background-position: 84px -58px;
    }
    .img3{
    background-image: url("2.png");
    height: 100px;
    100px;
    background-position: 30px 20px;
    background-repeat: no-repeat;
    }
    .img4{
    background-image: url("bcak.png");
    height: 100px;
    100px;
    background-position: 30px 20px;
    background-repeat: no-repeat;
    /*图片伸缩*/
    -webkit-transform:scale(1.5,1.5);
    -moz-transform:scale(1.5,1.5);
    -transform:scale(1.5,1.5);
    }
    </style>
    </head>
    <body>
    <div class="img"></div>

    <div class="img2"></div>

    <div class="img3">sss</div>
    <div class="img4">test</div>
    </body>
    </html>、

    效果如下:

    border 【边框】

    代码如下:

     <!--border:有3个参数:线的粗细、线的样式(实线、点、虚线等)、线的颜色-->
        <!--第一种:线的粗细为1像素,实线、红色-->
        <div style="border:1px solid red;height:10px" ></div>
        <!--第二种:线的粗细为1像素,点、蓝色-->
        <div style="border:1px dotted blue;height:10px" ></div>
        <!--第三种:线的粗细为1像素、虚线、紫色-->
        <div style="border:1px dashed purple;height:10px" ></div>

    设置边框,效果图如下图:

    边框可以单独的设置一边的边框、上、下、左、右

     <!--在左边设置边框,3px、实线、红色-->
     <div style="border-left: 3px solid red">Luotianshuai</div>

    Display

    代码如下:

    display:none

    original

    display:block

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style=" 1200px;height: 1000px;border: 1px solid red">
            <div style=" 200px;height: 200px;background-color: aqua;float: left;margin-left: 10px;display: block">f</div>
            <div style=" 900px;height: 400px;background-color: red;float: left;display: block">A</div>
    
            <!--<div style="clear: both;"></div>-->
        </div>
    </body>
    </html> 

     效果如下:

    cursor 鼠标停放所显示的效果

     代码如下(实际效果自己写看):

        <div style="cursor:pointer">停放在这里显示小手(pointer)</div>
        <div style="cursor:help">停放在这里显示问号(help)</div>
        <div style="cursor:wait">停放在这里显示问号(wait)</div>
        <div style="cursor:move">停放在这里显示移动(move)</div>
        <div style="cursor:crosshair">停放在这里显示定位(crosshair)</div>

    浮动  float (用的比较多,用来布局使用)

    CSS里面的浮动属性是布局的常用工具,只有真正了解它并熟练使用才能将它的优点发挥到极致。

    许多页面中都有文字绕图效果,并且各区块分布得错落有置,很多朋友在自学CSS布局时为了做出这些效果往往会被div只能独占一行的默认样式搞的头大,但使用了浮动属性,布局就变得简单、美观了。

    任何元素都可以被浮动,段落标签<p>、<div>、<table&gt;、<img>,甚至<span>、<b>、<h1>等等都可以,而且所有被定义为浮动的元素都会被自动变为“块状元素”,也就是我们先前讲过的“盒装模型”,也就是代表它可以定义宽度和高度了。

    浮动float的定义方法


    CSS中浮动属性的定义是通过float来声明的,它规定了元素是向左靠还是向右靠,有三个值:

    left:居左;

    right:居右;

    none:默认属性,不浮动。

    下面举个例子:

    <div style="float:right;100px;height:100px;">
    
    <p style="float:right;50px;background:#F00;">文字</p>
    
    </div>

    上面的例子将最外面的div置于右方,将内部的段落也置于div内部右方,就这样做到了内容的浮动。

    水平浮动的层叠


    如果将A元素居左放置在页面最左端,在它的后面跟随一个居左浮动的B元素,那么B元素就是贴着A元素排列的,以此类推,在水平宽度允许的条件下,可以放置多个居左浮动的元素,直到宽度没有多余的空间时,居左浮动的元素会绕到下一行的左侧显示。

    举例:

    代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            ul {
    
            width:500px;
    
            background:#000;
    
            padding:5px;
    
            }
    
            li {
    
            float:left;
    
            border-right:1px solid #000;
    
            height:20px;
    
            padding-right:100px;
    
            background:#FFF;
    
            margin-bottom:1px;
    
            }
        </style>
    </head>
    <body>
        <ul>
    
            <li>float01</li>
    
            <li>float02</li>
    
            <li>float03</li>
    
            <li>float04</li>
    
            <li>float05</li>
    
            <li>float06</li>
    
            <li>float07</li>
    
            <li>float08</li>
    
        </ul>
    </body>
    </html>

    以上代码的显示效果应该是一排水平排列的<li>,在超出宽度时,会折行显示,为了分清界限,我给它定义了一条右边线。

    效果如下图:

    清除属性-clear


    吃了毒药,就一定要有解药。学会了怎样使用浮动属性,那必须学会怎样清除浮动。

    清除属性通过clear来声明,它同样有四个值:

    clear:left;清除左侧。

    clear:right;清除右侧。

    clear:both;清除两侧。

    clear:none;不清除。

    clear要达到的效果是,一个被清理的盒状元素无法与前置浮动保持在同一个水平位置上。它必须出现在其下方。

    代码如下

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            ul {
    
            width:500px;
    
            background:#000;
    
            padding:5px;
    
            }
    
            li {
    
            float:left;
    
            border-right:1px solid #000;
    
            height:20px;
    
            padding-right:100px;
    
            background:#FFF;
    
            margin-bottom:1px;
    
            }
        </style>
    </head>
    <body>
        <ul>
    
            <li>float01</li>
    
            <li>float02</li>
    
            <li>float03</li>
    
            <li>float04</li>
    
            <li>float05</li>
    
            <li>float06</li>
    
            <li>float07</li>
    
            <li>float08</li>
    
        </ul>
        <div style="float:left; background:#F00;">顶部第一个div向左浮动,无清除效果</div>
    
        <div style="clear:both;">第二个div清除两侧内容</div>
    
        <div style="float:left;">第三个div,无清除效果,居左浮动</div>
    
        <div style="float:left;">第四个div,无清除效果,居左浮动</div>
    </body>
    </html>

    效果如下 

    position

    http://www.cnblogs.com/canuseethat/archive/2010/09/16/1827804.html

    margin 外边距

    margin简写属性在一个声明中设置所有外边距属性。该属性可以有1到4个值。


    {
    顺序上右下左
    margin:2cm 4cm 3cm 4cm;
    }
    <
    div style="height: 100px;background-color: #ddd;border: 1px solid green"> <div style="margin-top: 30px;margin-left: 100px"> <input /> <input /> <input /> </div> </div> </body>

    padding 内边距

    定义和用法

    padding 简写属性在一个声明中设置所有内边距属性。

    说明

    这个简写属性设置元素所有内边距的宽度,或者设置各边上内边距的宽度。行内非替换元素上设置的内边距不会影响行高计算;因此,如果一个元素既有内边距又有背景,从视觉上看可能会延伸到其他行,有可能还会与其他内容重叠。元素的背景会延伸穿过内边距。不允许指定负边距值。

    注释:不允许使用负值。

    padding:10px 5px 15px 20px;

    上内边距是 10px

    右内边距是 5px

    下内边距是 15px

    左内边距是 20px

     透明度

    代码如下

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            img{
                opacity: 0.4;
            }
        </style>
    </head>
    <body>
    
    </body>
    </html>

     补充:

    1.img 标签边框 IE 浏览器如果不将border 设置为0,会有外边框,在chrome 无此情况:

     

    边框设置为0,效果如下:

    代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            img{
                border: 0px;
            }
        </style>
    </head>
    <body>
        <div>
            <div class="item">
                <a href="http://www.etiantian.org">
                    <img src="2.jpg" alt="图片">
                </a>
            </div>
        </div>
    </body>
    </html>
    img去除border(IE)

    如果引用的图片不存在,可以加alt属性备注

    代码如下:

    <img src="2.jp" alt="图片">

    效果如下图:

     

     2. 商品展示下商品数量加减导航栏设置,效果如下图:

     代码如下:

    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .inp{
                border: 0;
                border-left: 1px solid #dddddd;
                border-right: 1px solid #dddddd;
                height: 25px;
                margin: 0;
                padding: 0;
                float: left;
            }
            .sp{
                display: inline-block;
                height: 25px;
                width: 25px;
                text-align: center;
                line-height: 25px;
                float: left;
            }
        </style>
    </head>
    <body>
        <div style="border: 1px solid #dddddd;display: inline-block;">
            <div class="sp">-</div>
            <input class="inp" type="text" />
            <div class="sp">+</div>
        </div>
    </body>
    </html>
    View Code

    3. important 属性

    如果两个类对同一个属性设置,想要优先选择某个属性,可以加important属性进行渲染 ,代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .hide{
                display: none !important;
            }
            .c1{
                color: red !important;
            }
            .c2{
                color: green;
            }
        </style>
    </head>
    <body>
    
        <div class="c1 c2">asdfasdfasdfasdf</div>
    </body>
    </html>
    View Code

    4.浏览器缩小引发样式出错的问题

    当某个容器包含两个div,并让它们居中显示,需要浮动起来,但是当我们缩小浏览器窗口时,样式会出现混乱的情况,未解决此问题,我们应该给父容器设定固定的宽度,这样即使浏览器缩小,样式

    也不会发生变化,浏览器会出现导航窗口,代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title></title>
    </head>
    <body>
    <!--固定父容器宽度-->
    <div class="pg-body" style=" 980px;margin: 0 auto;">
    <div style=" 20%;float: left;background-color: red">asasdfasdfasdfasdfasdfasdfdf</div>
    <div style=" 80%;float: left;background-color: #2459a2">
    sdfsdfasdfasdfsdfasdfsdfasdfasdfsdfasdfasdfsdfasdfasdf
    </div>
    </div>
    </body>
    </html>

     浏览器缩小时,效果如下:

     

    5.清除浮动,恢复背景样式高级方法

    此前为了恢复父容器的背景样式,会在容器最后加上 style=“clear:both”,下面介绍一个更高级的方法;代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .c1:hover{
                background-color: #2459a2;
            }
            .c2:before{
                content: '666';
            }
            .c2:after {
                content: '777';
            }
            .left{
                float: left;
            }
            .item{
                background-color: red;
            }
            .clearfix:after{
                content: '.';
                clear: both;
                display: block;
                visibility: hidden;
                height: 0;
            }
        </style>
    </head>
    <body>
        <div class="c1">ddd</div>
        <div class="c2">888</div>
    
        <div style="background-color: red" class="clearfix">
            <div class="left" style="height: 100px;background-color: green">1</div>
            <div class="left">2</div>
        </div>
    </body>
    </html>
    View Code

    6.登录窗口样式

    代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .icon-name{
                background-image: url('i_name.jpg');
                height: 16px;
                width: 16px;
                /*内联块标签*/
                display: inline-block;
            }
            .icon-pwd{
                background-image: url('i_pwd.jpg');
                height: 16px;
                width: 16px;
                display: inline-block;
            }
        </style>
    </head>
    <body>
        父容器样式position为relative,子容器span设置position为absolute,这样它相对父容器是固定的
        <div style=" 200px;position: relative">
            <input style=" 180px;padding-right: 20px;" />
            <span class="icon-name" style="position: absolute;top:2px;right: 0;"></span>
        </div>
    </body>
    </html>

    7.制作小三角

    效果如下:

    代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .icon{
                display: inline-block;
                border-top: 15px solid blue;
                border-right: 15px solid red;
                border-bottom: 15px solid yellow;
                border-left: 15px solid black;
            }
        </style>
    </head>
    <body>
        <div class="icon"></div>
    </body>
    </html>
  • 相关阅读:
    flash 显示对象的getRect()方法的问题
    John Maccarthy
    一个c++ 2d图形引擎 AGG
    lisp 编程入门
    linux图形开发工具
    wxDevC++ – Dev C++的愛好者一定要知道的C++ IDE
    备忘 html5 canvas context2d/3d
    windows下使用boost库可以下载编译好的二进制安装包
    酷壳
    [.NET] : Provider Pattern
  • 原文地址:https://www.cnblogs.com/jasonwang-2016/p/5764250.html
Copyright © 2020-2023  润新知