Skip to content

Latest commit

 

History

History
461 lines (416 loc) · 10.5 KB

File metadata and controls

461 lines (416 loc) · 10.5 KB

CSS

目录

  1. CSS常见问题(含LESS语法)
  2. CSS Tricks
  3. 选择器 Selectors
    • class
    • id
## CSS 常见问题(以下内容包含LESS语法) ### span 标签插入图片 background需要加入```display: inline-block; ``` - 否则图片无法显示出来 - PS: less语法
homework-height:42px;
homework-width:58px;
homework-position-horizontal: -58px;
homework-position-vertical: -42px;
homework-icon: url(../images/student/icons.png);
.homework-chinese{
	display: inline-block;     //important
	height: @homework-height;
    width: @homework-width;
    background: @homework-icon no-repeat @homework-position-horizontal*0 @homework-position-vertical*0;
}

分栏布局

需要加入 box-sizing: border-box;

  • 否则导致div被挤到下一行
.content-col-6 {
    width: 50%;
    padding: @content-col-padding;
    position: relative;
    float: left;
    box-sizing: border-box;
}

2个 img中间 出现空格

需要添加font-size: 0px;

  • 否则中间的空隙无法去除
<div  style=" display:inline; font-size: 0px;">
     <img  src="../static/images/student/logo_1.png">
     <img  style="vertical-align: top;" src="../static/images/student/logo_2.png">
</div>

遮罩

需要添加 透明度opacity: 0.9;

 #mask {
        bottom: 0;
        left: 0;
        opacity: 0.9;    /* important*/
        position: fixed;
        right: 0;
        top: 0;
        background: grey;
        filter:alpha(opacity=50);    /*IE6*/
        -moz-opacity:0.5;          /*Mozilla old version*/
        -khtml-opacity: 0.5;     /*Safari old version*/
    }

要获取div的display值

需要在div里添加style="display: none;"

  • 不能在css里写,js无法读取
    <div class="mask" style="display: none;" onclick="showMask(3);">
    </div>
    function showMask(n) {
        var mask = document.getElementsByClassName("mask");
        if(mask[n].style.display =='none'){
            mask[n].style.display = 'block';
        }else{
            mask[n].style.display = 'none';
        }
    }

background

image 居中

background:url(logo.png) center center no-repeat;

image 全屏

background-size:100% 100%;

image 拉伸

  • 顺序不能翻转
background:url('../../static/images/login/bg0.png') no-repeat  0 0 / 100% 100% rgba(0, 0, 0, 0);
  background-size:100% 100%;

image底下有白边

首先 img 元素默认对齐方式为 vertical-align: baseline;,这就导致了,baseline 以下的部分被空了出来,显示了背景的白色。

问题找到了,对症下药可得出下面的解决方案:

  • 根本上消除 img 的对齐方式 —— 块状化:
img {
display: block;
}
  • 更改 img 对齐方式,以下三种均可
img {
vertical-align: top;
vertical-align: middle;
vertical-align: bottom;
}
  • 更改行高,行高是两条 baseline 之间的距离,因此可以暴力的让行高消失
{
line-height: 0;
/* font-size: 0; 当 line-height 使用数值、百分比或者 rem 定义时也可用这种方式,因为 line-height 参照的是 font-size 的值*/
}

input 点击有蓝边

input,textarea{
  outline:none;
}

CSS Tricks

居中

水平居中

display: flex;
justify-content: center;    /* 水平居中 */

垂直居中

display: flex;
align-items: center;       

绝对居中

div {
    width: 300px;
    height: 300px;
    margin: auto;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    position: absolute;
    background-color: pink; /* 方便看效果 */
}
  • 利用 flex 布局
    • 实际使用时应考虑兼容性
.container {
    display: flex;
    align-items: center;        /* 垂直居中 */
    justify-content: center;    /* 水平居中 */

}
.container div {
    width: 100px;
    height: 100px;
    background-color: pink;     /* 方便看效果 */
}  
  • 未知容器的宽高,利用 transform 属性
div {
    width:500px;
    height:300px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    position: absolute;     /* 相对定位或绝对定位均可 */
    background-color: pink;     /* 方便看效果 */

}

动画&特效

旋转

.profile-circle-img {
    width: 130px;
    height: 130px;
    border-radius: 50%;
    left: 65px;
    top: 35px;
    transition: all 0.5s ease-in-out;
    -moz-transition: all 0.5s ease-in-out;
    -webkit-transition: all 0.5s ease-in-out;
    -o-transition: all 0.5s ease-in-out;
}

.profile-circle-img:hover {
    transform: rotate(360deg);
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
}

三角形

利用 border 属性实现三角形
.arrow-up {
  width: 0;
  height: 0;
  border-left:20px solid transparent;
  border-right:20px solid transparent;
  border-bottom:20px solid black;
}
#demo {
  width: 0;
  height: 0;
  border-width: 20px;
  border-style: solid;
  border-color: transparent transparent red transparent;
}
利用 CSS3 transfrom 旋转 45 度实现三角形

  • HTML
<div class="message-box">
  <span>我是利用 css transfrom 属性字符实现的</span>
  <div class="triangle-css3 transform ie-transform-filter"></div>
</div>
  • CSS
.message-box {
    position:relative;
    width:240px;
    height:60px;
    line-height:60px;
    background:#E9FBE4;
    box-shadow:1px 2px 3px #E9FBE4;
    border:1px solid #C9E9C0;
    border-radius:4px;
    text-align:center;
    color:#0C7823;
}
.triangle-css3 {
    position:absolute;
    bottom:-8px;
    bottom:-6px;
    left:30px;
    overflow:hidden;
    width:13px;
    height:13px;
    background:#E9FBE4;
    border-bottom:1px solid #C9E9C0;
    border-right:1px solid #C9E9C0;
}
.transform {
    -webkit-transform:rotate(45deg);
    -moz-transform:rotate(45deg);
    -o-transform:rotate(45deg);
    transform:rotate(45deg);
}
/*ie7-9*/
.ie-transform-filter {
    -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(
        M11=0.7071067811865475,
        M12=-0.7071067811865477,
        M21=0.7071067811865477,
        M22=0.7071067811865475,
    SizingMethod='auto expand')";
    filter: progid:DXImageTransform.Microsoft.Matrix(
        M11=0.7071067811865475,
        M12=-0.7071067811865477,
        M21=0.7071067811865477,
        M22=0.7071067811865475,
    SizingMethod='auto expand');
}

鼠标、光标

手指

cursor:pointer;

文本

可编辑文本

<p contenteditable="true">这是一段可编辑的段落。请试着编辑该文本。</p>

文字超长省略

{
 max-width:150px;
 white-space:nowrap;  /*强制文本在一行内显示*/
 text-overflow:ellipsis;   /*文字超出省略*/
 overflow:hidden;
 }

选择器 Selectors

<p class="key" id="principal">

class

.key {
  color: green;
}

id

#principal {
  font-weight: bolder;
}

伪类选择器(Pseudo-classes selectors)

伪类列表

body { background-color: #ffffc9 }
a:link { color: blue } /* 未访问链接 */
a:visited { color: purple } /* 已访问链接 */
a:hover { font-weight: bold } /* 用户鼠标悬停 */
a:active { color: lime } /* 激活链接 */