css样式设计思路总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了css样式设计思路总结相关的知识,希望对你有一定的参考价值。

参考技术A 如何清除图片下方出现几像素的空白间隙?
方法1:

方法2:

除了top值,还可以设置为text-top | middle | bottom | text-bottom
甚至特定的<length>和<percentage>值都可以

方法3:

如何让文本垂直对齐文本输入框?

如何让单行文本在容器内垂直居中?

如何让超链接访问后和访问前的颜色不同且访问后仍保留hover和active效果?

按L-V-H-A的顺序设置超链接样式即可,可速记为LoVe(喜欢)HAte(讨厌)
为什么Standard mode下IE无法设置滚动条的颜色?

将原来设置在body上的滚动条颜色样式定义到html标签选择符上即可
如何使文本溢出边界不换行强制在一行内显示?

设置容器的宽度和white-space为nowrap即可,其效果类似<nobr>标签
如何使文本溢出边界显示为省略号?
方法(此方法Firefox5.0尚不支持):

如何使连续的长字符串自动换行?

word-wrap的break-word值允许单词内换行
如何清除浮动?
方法1:

方法2:

方法3:

如何定义鼠标指针的光标形状为手型并兼容所有浏览器?

若将cursor设置为hand,将只有IE和Opera支持,且hand为非标准属性值
如何让已知高度的容器在页面中水平垂直居中?

Know More:已知高度的容器如何在页面中水平垂直居中
如何让未知尺寸的图片在已知宽高的容器内水平垂直居中?

如何设置span的宽度和高度(即如何设置内联元素的宽高)?

如何给一个元素定义多个不同的css规则?

如何让某个元素充满整个页面?

如何让某个元素距离窗口上右下左4边各10像素?

如何去掉超链接的虚线框?

IE7及更早浏览器由于不支持outline属性,需要通过js的blur()方法来实现,如<a onfocus="this.blur();"...
如何容器透明,内容不透明?

原理是容器层与内容层并级,容器层设置透明度,内容层通过负margin或者position绝对定位等方式覆盖到容器层上

方法2:

高级浏览器直接使用rgba颜色值实现;IE浏览器在定义容器透明的同时,让子节点相对定位,也可达到效果
如何让整个页面水平居中?

定义body的text-align值为center将使得IE5.5也能实现居中
为什么容器的背景色没显示出来?为什么容器无法自适应内容高度?
通常出现这样的情况都是由于没有清除浮动而引起的
如何做1像素细边框的table?
方法1:

方法2:

IE7及更早浏览器不支持border-spacing属性,但是可以通过table的标签属性cellspacing来替代。
如何使页面文本行距始终保持为n倍字体大小的基调?

注意,不要给n加单位
标准模式Standard mode和怪异模式Quirks mode下的盒模型区别?
标准模式下:Element width = width + padding + border
怪异模式下:Element width = width
以图换字的几种方法及优劣分析
思路1:使用text-indent的负值,将内容移出容器

该方法优点在于结构简洁,不理想的地方:
1.由于使用场景不同,负缩进的值可能会不一样,不易抽象成公用样式;
2.当该元素为链接时,在非IE下虚线框将变得不完整;
3.如果该元素被定义为内联级或者内联块级,不同浏览器下会有较多的差异

思路2:使用display:none或visibility:hidden将内容隐藏;

该方法优点在于兼容性强并且容易抽象成公用样式,缺点在于结构较复杂

思路3:使用padding或者line-height将内容挤出容器之外;

该方法优点在于结构简洁,缺点在于:
1.由于使用场景不同,padding或line-height的值可能会不一样,不易抽象成公用样式;
2.要兼容IE5.5及更早浏览器还得hack

思路4:使用超小字体和文本全透明法;

该方法结构简单易用,推荐使用
为什么2个相邻div的margin只有1个生效?

本例中box1的底部margin为10px,box2的顶部margin为20px,但表现在页面上2者之间的间隔为20px,而不是预想中的10+20px=30px,结果是选择2者之间最大的那个margin,我们把这种机制称之为“外边距合并”;外边距合并不仅仅出现在相邻的元素间,父子间同样会出现。

简单列举几点注意事项:
 外边距合并只出现在块级元素上;
 浮动元素不会和相邻的元素产生外边距合并;
 绝对定位元素不会和相邻的元素产生外边距合并;
 内联块级元素间不会产生外边距合并;
 根元素间不会不会产生外边距合并(如html与body间);
 设置了属性overflow且值不为visible的块级元素不会与它的子元素发生外边距合并;
如何在文本框中禁用中文输入法?
ime-mode为非标准属性,写该文档时只有IE和Firefox支持
如何解决列表中list-style-image不能精准定位的问题?
不使用list-style-image来定义列表项目标记符号,而用background-image来代替,
并通过background-position来进行定位
如何解决伪对象:before和:after在input标签上的怪异表现的问题?
现象:
在编写本条目时,除了Opera,在所有浏览器下input标签使用伪对象:before和:after都没有效果,即使Opera的表现也同样令人诧异。大家可以试玩一下。浏览器版本:IE6-IE10, Firefox6.0, Chrome13.0, Safari5.1, Opera11.51

除了Firefox,在所有浏览器下伪对象:before和:after无法定义过渡和动画效果。
如果这个过渡或动画效果是必须,可以考虑使用真实对象。

Java学习总结(二十四)——前端:CSS样式设计(CSS引入,选择器,盒子模型,浮动元素)

一.CSS引入方式
1.CSS简介:
(1)CSS(Cascading style Sheets):层叠样式表。用来给html网页设置样式;
(2)当多个选择器对同一个元素进行样式设计时,则该元素的样式为多个选择器叠加的效果(当有冲突时,按照优先级设置);
2.引入方式:
(1)方式一:行内样式(在html元素的style属性上设置样式)
技术分享图片
(2)方式二:页面内嵌样式(在head标签内部嵌入样式)
技术分享图片
(3)方式三:引入外部样式文件
技术分享图片
例1(演示CSS三种引入方式):
Html代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>CSS引入</title>
        <!--方式二:页面内嵌样式-->
        <style type="text/css">
            #hehe{
                width: 200px;
                height: 200px;
                background-color: yellow;
            }
        </style>
        <!--方式三:引入外部样式文件-->
        <link rel="stylesheet" type="text/css" href="css/index.css"/>
    </head>
    <body>
        <!--方式一:行内样式:-->
        <div style="background-color: green; width: 400px;height: 400px;">
            <div id="haha">
                <div id="hehe">
                    <div style="background-color: red; width: 120px;height: 120px;"></div>
                </div>
            </div>
        </div>
    </body>
</html>

CSS代码:

#haha{
    width: 300px;
    height: 300px;
    background-color: blue;
}

运行结果:
技术分享图片

二.CSS选择器:
1.标签选择器
技术分享图片

2.类选择器

技术分享图片

3.ID选择器:
技术分享图片

4.复合选择器:
技术分享图片

5.子选择器(选择父选择器的直接子元素):

技术分享图片

6.后代选择器:
技术分享图片

7.伪类选择器(用来设置元素在不同状态下的样式)
技术分享图片

例2(选择器的使用):
代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            #daohang{
                width: 100%;
                height: 73px;
                border: 0px solid #EAEAEA;
            }
            #logo1{
                width: 332px;
                height: 72px; 
                border: 0px solid #EAEAEA;
                float: left;
            }
            #logotu{
                width: 180px;
                height: 37px;
                margin-left: 78px;
                margin-top: 16px;
                background-image: url(一键杀毒_盗号保护_垃圾清理_软件管理-腾讯电脑管家官网_files/logo_2.png);
                background-repeat: no-repeat;
                background-size: 100% 100%;
            }
            #shouye{
                height: 72px; 
                border: 0.25px solid #EAEAEA;
                float: left;
                width:70px ;
                font-family: "微软雅黑";
                font-size: 20px;
                text-align: center;
                line-height: 72px;
                color: #9D9D9D;
                border-top-style:none ;
                border-right-style:none ;
            }
            .dropdown {
                width: 121px;
                height: 72px; 
                border: 0.25px solid #EAEAEA;
                float: left;
                position: relative;
                display: inline-block;
                text-align: center;
                line-height: 72px;
                border-top-style:none ;
                border-right-style:none ;
            }
            .dropdown-content{
                display: none;
                position: absolute;
                background-color: #FFFFFF;
                width: 120px;
                line-height: 27px;
                z-index: 1;
            }
            .dropdown:hover .dropdown-content {
                display: block;
            }
            .banben{
                width: 70px;
                height: 72px; 
                float: left;
            }
            #login{
                width: 80px;
                height: 60px; 
                float: left;
                margin-left: 60px;
                margin-top: 7px;
            }
            a{
                text-decoration: none;
                font-size: 17px;
                color: #333333;
                font-family: "微软雅黑";
                font-size: 20px;
            }
            a:hover{
                color: #2871D5;
            }
            #xialaxiang{
                font-size: 14px;
            }
            #tu{
                width: 50px;
                height: 50px;
                margin-left: 10px;
                margin-top: 10px;
                background: url(一键杀毒_盗号保护_垃圾清理_软件管理-腾讯电脑管家官网_files/09ec6123b95bae5a3d11c507bc84910e.png);%
                background-repeat: no-repeat;
                background-size: 100% 100%;
            }
            #maintu{
                width: 100%; 
                height: 442px; 
                background: url(一键杀毒_盗号保护_垃圾清理_软件管理-腾讯电脑管家官网_files/9fc5cc01281fdf183798ea0239533980.jpg);   
                background-repeat: no-repeat;
                background-size: 100% 100%;         
            }
        </style>
    </head>
    <body>
        <div id="daohang">
            <div id="logo1">
                <div id="logotu"></div>
            </div>
            <div id="shouye" ><a href="index.html" style="text-decoration: none;">首页</a></div>
            <div class="dropdown">
                <span class="dropbtn"style="line-height: 70px;"><a href="#" target="_blank">产品介绍</a></span>
                <div class="dropdown-content">
                    <a href="#" id="xialaxiang">安全防护</a><br />
                    <a href="#" id="xialaxiang">管理效率</a><br />
                    <a href="#" id="xialaxiang">电脑加速</a><br />
                    <a href="#" id="xialaxiang">游戏加速</a><br />
                    <a href="#" id="xialaxiang">等级加速</a><br />
                    <a href="#" id="xialaxiang">电脑加速</a><br />
                    <a href="#" id="xialaxiang">账号保护</a><br />
                    <a href="#" id="xialaxiang">手游助手</a><br />
                    <a href="#" id="xialaxiang">桌面管理</a><br />
                    <a href="#" id="xialaxiang">最近文档</a><br />
                </div>
            </div>
            <div class="dropdown">
                <span class="dropbtn"style="line-height: 70px;"><a href="#" target="_blank">安全咨询</a></span>
                <div class="dropdown-content">
                    <a href="#" id="xialaxiang">安全专题</a><br />
                    <a href="#" id="xialaxiang">管家大事记</a><br />
                    <a href="#" id="xialaxiang">联合实验室</a><br />
                </div>
            </div>
            <div class="dropdown">
                <span class="dropbtn"style="line-height: 70px;"><a href="#" target="_blank">在线安全</a></span>
                <div class="dropdown-content">
                    <a href="#" id="xialaxiang">电脑诊所</a><br />
                    <a href="#" id="xialaxiang">申诉举报</a><br />
                    <a href="#" id="xialaxiang">诈骗信息查询</a><br />
                    <a href="#" id="xialaxiang">网站安全检测</a><br />
                    <a href="#" id="xialaxiang">密码安全检测</a><br />
                    <a href="#" id="xialaxiang">账号安全查询</a><br />
                </div>
            </div>
            <div class="dropdown" style="border-right:0.25px solid #EAEAEA">
                <span class="dropbtn"style="line-height: 70px;"><a href="#" target="_blank">活动中心</a></span>
                <div class="dropdown-content">
                    <a href="#" id="xialaxiang">兑换礼包</a><br />
                    <a href="#" id="xialaxiang">赚安全金币</a><br />
                    <a href="#" id="xialaxiang">专题活动</a><br />
                </div>
            </div>
            <div class="banben" style="margin-left: 50px;"><div id="tu"></div></div>
            <div class="banben"><div id="tu"></div></div>
            <div class="banben"><div id="tu"></div></div>
            <div id="login" style="line-height: 60px; text-align: center;"><a href="ligin.html" target="_blank" style="font-size: 15px;color: #2771FA;">登录</a></div>
            <div style="clear: both;">
                <!--清除上面的浮动-->
            </div>
            <div id="maintu">

            </div>
        </div>
    </body>
</html>

运行结果:
技术分享图片

试用下拉菜单:
技术分享图片

三.CSS盒子模型(BOX模型)
1.基本组成
(1)border(边框)?
(2)padding(内边距,也叫填充):元素中的内容与边框(border)之间的距离。
(3)margin(外边距):与相邻元素或父元素之间的距离。
(4)content(内容):盒子包含的内容(皇宫)。
2.图例:
技术分享图片
例3(盒子模型举例):

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>盒子模型</title>
        <style type="text/css">
            #div1{width: 400px; height: 400px;background-color: aqua;}
            #div2{width: 200px;height: 200px; background-color: blueviolet;margin-left: 98px;margin-top: 98px;}
            #div3{width: 120px;height: 120px; background-color:coral;margin-left: 38px;margin-top: 28px;}
        </style>
    </head>
    <body>
        <div id="div1">皇城
            <div id="div2">皇宫
                <div id="div3">皇帝</div>
            </div>
        </div>
    </body>
</html>

运行结果:
技术分享图片

例4(盒子模型属性的使用):

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <style type="text/css">
        #wai{
            width: 400px;
            height: 400px;
            border: 20px solid yellowgreen;
            /*设置外层为一个盒子*/
            display: flex;
            /*盒子里面元素的排列顺 
                 flex-direction: 
                 row  row-reverse 
                  column  column-reverse
                 * */
            flex-direction: row;
                /*justify-content:
                 * flex-start | 靠左端
                 * flex-end | 靠右端
                 * center;按方向居开始 中间  末尾 */
                /*
                 * 盒子里面元素的对齐方式
                 */
            justify-content: center;
                /*flex-flow: row wrap;*/
            flex-wrap: wrap;
        }
        #wai>div{
                /*让盒子内的元素 均匀排列 把 margin: auto;*/
                margin: auto auto;
                /*margin-left: 10px;*/
                width: 50px;
                height: 50px;
                border: 5px yellow solid;
        }
    </style>
    <body>
        <div id="wai">
            <div style="order: 1;">1</div>
            <div style="order: 2;">2</div>
            <div style="order: 3;">2</div>
            <div style="order: 4;">4</div>
            <div style="order: 5;">5</div>
            <div style="order: 6;">6</div>
            <div style="order: 7;">7</div>
            <div style="order: 8;">8</div>
            <div style="order: 9;">9</div>
        </div>
    </body>
</html>

运行结果:
技术分享图片

四.CSS浮动(float)
1.浮动元素:float:left|right
2.设置了float属性的元素即为浮动元素,浮动元素脱离了正常的文档流(标准流),不遵循“从左到右,从上到下,遇块换行”的标准文档流的排布方式
3.可以清除浮动:clear:left|right|both
4.规律一:
如果某个元素是浮动元素,那么有两种情况:
(1)这个浮动元素的上一个元素是标准流中的元素,则该浮动元素与上一个标准流元素相对垂直位置不变
(2)这个浮动元素的上一个元素也是浮动元素,则这两个浮动元素在同一水平位置排列(除非两个浮动元素的宽度和超过水平位置总宽度,这种情况下该浮动元素会被“挤”到下一行)。
5.规律二:
(1) 设置了clear属性的元素,主动负责完成清除浮动(移动自身完成目标)。
例5(CSS浮动的使用):
代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>float浮动元素</title>
    <style type="text/css">
        #div1{
            width:30%;
            height:80px;
            background-color:#DDA0DD;
        }
        #div2{
            width:40%;
            height:80px;
            background-color:#CD853F;
            float:left;
        }
        #div3{
            width:50%;
            height:100px;
            background-color:#2E8B57;
            float:left;
        }
        #div4{
            width:50%;
            height:120px;
            background-color:#FA8072;
        }
        #div5{
            width:50%;
            height:130px;
            background-color:#FF0000;
        }
    </style>
</head>
<body>
    <div id="div1">这是div1里面的内容</div>
    <div id="div2">这是div2里面的内容</div>
    <div id="div3">这是div3里面的内容</div>
    <div id="div4">这是div4里面的内容</div>
    <div id="div5">这是div5里面的内容</div>
</body>
</html>

运行结果:
技术分享图片

【本次总结完】

以上是关于css样式设计思路总结的主要内容,如果未能解决你的问题,请参考以下文章

Java学习总结(二十四)——前端:CSS样式设计(CSS引入,选择器,盒子模型,浮动元素)

bootstrap学习总结-css样式设计

Vue更换主题色的几种方法思路

Redis设计思路学习与总结

《翻转组件库之卡片设计》

《翻转组件库之卡片设计》