码迷,mamicode.com
首页 > Web开发 > 详细

css3

时间:2016-08-07 23:23:36      阅读:378      评论:0      收藏:0      [点我收藏+]

标签:

现在移动端单位基本都用rem加百分比布局,能适应各种手机

垂直居中问题:

 

技术分享

 

方法三

这种方法,在 content 元素外插入一个 div。设置此 div height:50%; margin-bottom:-contentheight;。 
content 清除浮动,并显示在中间。

<divid="floater"><divid="content">Content here</div></div>
#floater{
    float: left;
    height:50%;
    margin-bottom: -120px;
}
#content{
    clear: both;
    height:240px;
    position: relative;
}

优点: 
适用于所有浏览器 
没有足够空间时(例如:窗口缩小) content 不会被截断,滚动条出现

缺点: 
唯一我能想到的就是需要额外的空元素了(也没那么糟,又是另外一个话题)

---------------------------------

 

-webkit-line-clamp下多行文字溢出点点点...显示实例页面

    width:400px; 
    display: -webkit-box;
   -webkit-line-clamp: 3;-webkit-box-orient: vertical;
    overflow: hidden;
1:多行文字溢出出现省略号的问题
text-overflow:ellipsis;//这个属性设置文字溢出
display:-webkit-box;
-webkit-line-clamp:3;//设置超过多少行开始溢出成省略号
-webkit-box-orient:vertical;
overflow:hidden//溢出隐藏

 

------------------------------------------------------------------------------------

css3 旋转 transform:rotate( 5deg)

 

技术分享
 

.过渡属性

1.transition:简写属性,用于在一个属性中设置四个过渡属性。

transition:  property  duration  timing- function  delay;

 

浏览器支撑情况:

Internet Explorer 10FirefoxOpera 和 Chrome 支持 transition 属性。

Safari 支持替代的 -webkit-transition 属性。

 

2.transition-property:规定应用过渡的 CSS 属性的名称。

 

2.transition-duration:定义过渡效果花费的时间。

 

3.transition-timing-function:规定过渡效果的时间曲线。

4.transition-delay:规定过渡效果何时开始。


 

 

浏览器支撑情况:

Internet Explorer 10FirefoxOpera 和 Chrome 支持 transition-property 属性。

Safari 支持替代的 -webkit-transition-property 属性。

动画属性

1.@keyframes:规定动画。

以百分比来规定改变发生的时间,或者通过关键词 "from" 和 "to",等价于 0% 和 100%

0% 是动画的开始时间,100% 动画的结束时间。

 

语法格式:

@keyframes animation-name { 

     keyframes-selector {  css-styles;  }

}

 

浏览器支撑情况:

Firefox 支持替代的 @-moz-keyframes 规则。

Opera 支持替代的 @-o-keyframes 规则。

Safari 和 Chrome 支持替代的@-webkit-keyframes 规则。

2.animation:所有动画属性的简写属性,除了 animation-play-state 属性。

语法:animation: name duration timing-function delay iteration-count direction;

 

3.animation-name:规定 @keyframes 动画的名称。

4.animation-duration:规定动画完成一个周期所花费的秒或毫秒。

5.animation-timing-function:规定动画的速度曲线。

6.animation-delay:规定动画何时开始。

7.animation-iteration-count:规定动画被播放的次数。n / infinite 

8.animation-direction:规定动画是否在下一周期逆向地播放。normal / alternate

 

9.animation-play-state:规定动画是否正在运行或暂停。

          paused  

          running


----------------------------------------------------------

.转换属性

1.transform:向元素应用 2D 或 3D 转换。

 

浏览器支撑情况:

Internet Explorer 10FirefoxOpera 支持 transform 属性。

Internet Explorer 9 支持替代的 -ms-transform 属性(仅适用于 2D 转换)。

Safari 和 Chrome 支持替代的 -webkit-transform 属性(3D 和 2D 转换)。

Opera 只支持 2D 转换。

----------------------------------------------------------------------------------------
placeholder="收货人姓名", 默认值; 用户输入时默认值才消失

 

-----------------------------------------------------------------------------------------------------------


伪类 :nth-of-type 奇数偶数 odd even
.goods:nth-of-type(2n+1){
    width: 49.5%;padding-right:0.5%; padding-top:1%;
    display: inline-block;
}
.goods:nth-of-type(2n){
    width: 49.5%;padding-left:0.5%; padding-top:1%;
    display: inline-block;
}
---------------------------------------------------------------------
display:inline-block引发间隙问题
because他支持空格
要在父级设font-size:0;
#cooperation{ width: 94%; height: auto;font-size:0;}
#cooperation .co-brands{ width: 48%;display:inline-block; vertical-align:top;font-size:12px}
.space {
    font-size: 0;
    -webkit-text-size-adjust:none;
}
-webkit-text-size-adjust:none;//Chrome, 其默认有最小字体大小限制,因为,考虑到兼容性
--------------------------------------------------------------------
 
<input type="text" name="user" placeholder="收货人姓名"/><br/>
设置属性样式 []
.add-form>input[value]{ color:#eee;}
-------------------------------------------------------------
外发光
.shine_red {
-webkit-animation-name: shineRed;
-webkit-animation-duration: 3s;
-webkit-animation-iteration-count: infinite;
}
@-webkit-keyframes shineRed {
from {
-webkit-box-shadow: 0 0 5px #bbb;
}
50% {
-webkit-box-shadow: 0 0 10px red;
}
to {
-webkit-box-shadow: 0 0 5px #bbb;
}
}
渐变色

linear-gradient( )

 
#bg {
width: 100%;
background: -webkit-linear-gradient(#9f1c65, #d89068,#7d1467,#ffe66c); /* Safari 5.1 - 6.0 */
background: -o-linear-gradient(#9f1c65, #d89068,#7d1467,#ffe66c); /* Opera 11.1 - 12.0 */
background: -moz-linear-gradient(#9f1c65, #d89068,#7d1467,#ffe66c); /* Firefox 3.6 - 15 */
background: linear-gradient(#9f1c65, #d89068,#7d1467,#ffe66c); /* 标准的语法 */
}
--------------------------------------------
:before,:after 伪元素 http://blog.jobbole.com/49173/
这些元素实际上并不在文档中生成。它们将在外部可见,但是你将不会在文档的源代码中找到它们,因此,实际上它们是“虚假”的元素。
添加上引号open-quote下一号close-quote,即“ ”
blockquote:before {
 contentopen-quote;
}
blockquote:after {
 contentclose-quote;
}
背景图
技术分享
blockquote:before {
 content" ";
 font-size24pt;
 text-aligncenter;
 line-height42px;
 color#fff;
 floatleft;
 positionrelative;
 top30px;
 border-radius: 25px;
 
 backgroundurl(images/quotationmark.png) -3px-3px#ddd;
 
 displayblock;
 height25px;
 width25px;
}
仍旧声明了content属性,而且此时使用了空字符串。content属性是必须的而且应该经常被应用。否则,伪元素无论如何都无法正常工作。

结合伪类

尽管有不同类型的伪X(伪元素、伪类),我们可以使用伪类连同伪元素一起放入一个CSS规则中,例如,如果我们希望当我们的鼠标移到blockqoute上时,引号的背景色能够略微变深。

blockquote:hover:after, blockquote:hover:before {
 background-color#555;
}

添加过渡效果

在伪元素上应用transition属性
使用 伪元素:before 和 :after 。它们两个都是绝对定位,而且使用负z-index来放置到图片后方实现阴影效果

3D按钮

技术分享

 

这是一个非常聪明的实现,利用伪元素结合CSS3 box-shadow 来绘制一个令人吃惊的3D按钮,仅仅使用了CSS和单一的锚文本。伪元素:before 被用来在按钮的左侧添加数字“1”。

叠加图像效果

使用伪元素来仅仅依靠一个图片标签创建一个“凌乱的”叠加图像效果也是可能的。伪元素用于建立一个图片叠加的错觉,通过使用z-index负值使“叠加”的图片在真正的图片后面来实现。

技术分享
实际上有一些伪元素的改进工作,目前逐步进行,比如伪元素嵌套div::before::before { content: ”; }以及多重伪元素div::before(3) { content: ”; }。
-----------------------------------------------------------------------
body {
-webkit-font-smoothing: antialiased;
font: normal 12px/1.5 "Microsoft YaHei", Helvetica, Arial, sans-serif;
color:#232525;
}
ul, li {
  1. list-style: none;
}
user agent stylesheet
li {
  1. display: list-item;
  2. text-align: -webkit-match-parent;
}
Inherited from 
ul, li {
  1. list-style: none;
}
user agent stylesheet
ul, menu, dir {
  1. display: block;
  2. list-style-type: disc;
  3. -webkit-margin-before: 1em;
  4. -webkit-margin-after: 1em;
  5. -webkit-margin-start: 0px;
  6. -webkit-margin-end: 0px;
  7. -webkit-padding-start: 40px;
}
Inherited from 
body {
  1. -webkit-font-smoothing: antialiased;
  2. font: normal 12px/1.5 "Microsoft YaHei", Helvetica, Arial, sans-serif;
  3. color: 
    #232525
    ;
}
img {
  1. vertical-align: bottom;
}
在所有浮动元素中添加display:inline,防止IE双边距bug。
Css 的bug,跟踪、隔离和识别bug,最后的手段才是hack
background-size: px  %  cover contain
单位:
rem适合移动端 1rem=16px
em
pt

-----------------------------------------------------------------------------------------------

CSS隱藏多余文字為...

 text-overflow : clip | ellipsis 

  参数:clip : 简单的裁切
            ellipsis :  当对象内文本溢出时显示省略标记(...)
  说明: 请您注意,text-overflow:ellipsis属性在FF中是没有效果的。

 text-overflow属性仅是注解,当文本溢出时是否显示省略标记。并不具备其它的样式属性定义。我们想要实现溢出时产生省略号 的效果。还必须定义:强制文本在一行内显示(white-space:nowrap)及溢出内容为隐藏(overflow:hidden)。只有这样才能 实现溢出文本显示省略号的效果。
white-space:nowrap;
overflow:hidden;
text-overflow :  ellipsis ;
技术分享
---------------------------------------------------------------------------------------------------
在css中@media (min-width: 768px)表示最小是768也就是>=768,这里有等于,
所以我们判断更小的设备用@media (max-width: 767px)这边表示<=767
-------------------------------------------------------------------------------------------------
2015.12.29
单行显示 多余隐藏
overflow: hidden;
white-space: nowrap;
text-overflow: clip|ellipsis|string;
-----------------------------
<meta name="apple-touch-fullscreen" content="yes">"添加到主屏幕“后,全屏显示
 <meta name="apple-mobile-web-app-capable" content="yes" />
这meta的作用就是删除默认的苹果工具栏和菜单栏。content有两个值”yes”和”no”,当我们需要显示工具栏和菜单栏时,这个行meta就不用加了,默认就是显示。

<meta name=”apple-mobile-web-app-status-bar-style” content=black” />
默认值为default(白色),可以定为black(黑色)和black-translucent(灰色半透明)。
注意: 若值为“black-translucent”将会占据页面px位置,浮在页面上方(会覆盖页面20px高度–iphone4和itouch4的Retina屏幕为40px)。

在iOS中有两个meta值,apple-mobile-web-app-capable和apple-mobile-web-app-status-bar-style,这两个会让网页内容以应用程序风格显示,并使状态栏透明。
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">



<link rel="apple-touch-icon-precomposed" href="http://spion.blog.163.com/blog/iphone_milanoo.png" />
说明: 这个link就是设置web app的放置主屏幕上icon文件路径。
图片尺寸可以设定为57*57(px)或者Retina可以定为114*114(px),ipad尺寸为72*72(px)

<meta content="telephone=no" name="format-detection" />
<meta content="email=no" name="format-detection" /> //将不识别邮箱
告诉设备忽略将页面中的数字识别为电话号码

iOS用rel="apple-touch-icon",android 用rel="apple-touch-icon-precomposed"。这样就能在用户把网页存为书签时,在手机HOME界面创建应用程序样式的图标。
<link rel="apple-touch-icon" href="/static/images/identity/HTML5_Badge_64.png" />
<link rel="apple-touch-icon-precomposed" href="/static/images/identity/HTML5_Badge_64.png" />

------------------------------------------------------------

去掉iPhone、iPad的默认按钮样式

input[type="button"], input[type="submit"], input[type="reset"] {

    -webkit-appearance: none;

}

textarea {  -webkit-appearance: none;}   

如果还有圆角的问题,

.button{ border-radius: 0; } 

-------------------------------------------------

 

::-webkit-input-placeholder { /* WebKit browsers */
color: #a4a4a4;
font-size: 14px;
}
:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
color: #a4a4a4;
font-size: 14px;
}
::-moz-placeholder { /* Mozilla Firefox 19+ */
color: #a4a4a4;
font-size: 14px;
}
:-ms-input-placeholder { /* Internet Explorer 10+ */
color: #a4a4a4;
font-size: 14px;
}

可以在冒号前面写input和textarea

 

 

input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
 color: #666;
}
input:-moz-placeholder, textarea:-moz-placeholder {
 color:#666;
}
input::-moz-placeholder, textarea::-moz-placeholder {
 color:#666;
}
input:-ms-input-placeholder, textarea:-ms-input-placeholder {
 color:#666;
}

 

知识点:单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素
  css伪类:CSS 伪类用于向某些选择器添加特殊的效果。
  css伪元素:CSS 伪元素用于向某些选择器设置特殊效果。
  伪元素由双冒号和伪元素名称组成。双冒号是在当前规范中引入的,用于区分伪类和伪元素。但是伪类兼容现存样式,浏览器需要同时支持旧的伪类,如:first-line,:first-letter,:before,:after等等。因此对于css2之前已经有的伪元素两种写法的作用是一样的,但是为了兼容IE浏览器还是使用单冒号的写法;

----------------------------------------------------------------

 

上海-日常(865316484)  9:47:32
技术分享
请问这样的页面,当中的全透明,边上半透明,布局有什么思路吗。。。
西安-NS<964089199>  9:49:40
box-shadow就可以
.cover::before {
    content: ‘‘;
    width: 100%; height:100%;
    border-radius: 50%;
    border: 400px solid #000;
    position: absolute;
    left: -400px; top: -400px;
    /* 自己瞎填的参数,示意 */ box-shadow: inset 0 0 5px 2px rgba(0,0,0,.75);
}
<div class="cover"></div>

JS代码辅助
当然,我的实现也离不开JS的辅助,JS的工作很简单,让蒙层的width/height以及border大小和需要引导的元素相关联。

我特意整了个可以公用的方法coverGuide(命名不喜欢自己随便改):

var coverGuide = function(cover, target) {
    var body = document.body, doc = document.documentElement;
    if (cover && target) {
        // target size(width/height)
        var targetWidth = target.clientWidth,
            targetHeight = target.clientHeight;

        // page size
        var pageHeight = doc.scrollHeight,
            pageWidth = doc.scrollWidth;
        
        // offset of target    
        var offsetTop = target.getBoundingClientRect().top + (body.scrollTop || doc.scrollTop),
            offsetLeft = target.getBoundingClientRect().left + (body.scrollLeft || doc.scrollLeft);
        
        // set size and border-width
        cover.style.width = targetWidth + ‘px‘;
        cover.style.height = targetHeight + ‘px‘;    
        cover.style.borderWidth = 
            offsetTop + ‘px ‘ + 
            (pageWidth - targetWidth - offsetLeft) + ‘px ‘ +
            (pageHeight - targetHeight - offsetTop) + ‘px ‘ + 
            offsetLeft + ‘px‘;
        
        cover.style.display = ‘block‘;
            
        // resize
        if (!cover.isResizeBind) {
            if (window.addEventListener) {
                window.addEventListener(‘resize‘, function() {
                    coverGuide(cover, target);
                });    
                cover.isResizeBind = true;
            } else if (window.attachEvent) {
                window.attachEvent(‘onresize‘, function() {
                    coverGuide(cover, target);
                });
                cover.isResizeBind = true;                
                // IE7, IE8 box-shadow hack
                cover.innerHTML = ‘<img src="guide-shadow.png">‘;
            }
        }
    }
};
-------------------------------------------------------------------------
css生成三角形

Triangle Up
 技术分享

 
1
2
3
4
5
6
7
#triangle-up {
    width0;
    height0;
    border-left50px solid transparent;
    border-right50px solid transparent;
    border-bottom100px solid red;
}

   

Triangle Down

 技术分享
 
1
2
3
4
5
6
7
#triangle-down {
    width0;
    height0;
    border-left50px solid transparent;
    border-right50px solid transparent;
    border-top100px solid red;
}

   

Triangle Left

 技术分享
 
1
2
3
4
5
6
7
#triangle-left {
    width0;
    height0;
    border-top50px solid transparent;
    border-right100px solid red;
    border-bottom50px solid transparent;
}

 

Triangle Right

 技术分享
 
1
2
3
4
5
6
7
#triangle-right {
    width0;
    height0;
    border-top50px solid transparent;
    border-left100px solid red;
    border-bottom50px solid transparent;
}

 

Triangle Top Left

 技术分享
 
1
2
3
4
5
6
#triangle-topleft {
    width0;
    height0;
    border-top100px solid red;
    border-right100px solid transparent;
}

 

Triangle Top Right

 技术分享
 
1
2
3
4
5
6
7
#triangle-topright {
    width0;
    height0;
    border-top100px solid red;
    border-left100px solid transparent;
 
}

 

Triangle Bottom Left

 技术分享
 
1
2
3
4
5
6
#triangle-bottomleft {
    width0;
    height0;
    border-bottom100px solid red;
    border-right100px solid transparent;
}

 

Triangle Bottom Right

 技术分享
 
1
2
3
4
5
6
#triangle-bottomright {
    width0;
    height0;
    border-bottom100px solid red;
    border-left100px solid transparent;
}

 

-----------------------------------------------------
2015.10.23  中间横线
demoline01、02选一个用足够了
    <style>
.demo_line_01 {
width: 200px;
/*这指的是文字的宽度*/
padding: 0 20px 0;
margin: 20px auto;
line-height: 1px;
border-left: 200px solid #ddd;
border-right: 200px solid #ddd;
text-align: center;
}
 .demo_line_02 {
width:100%;
/*这指的是整个行的宽度*/
    margin:0 auto;
height: 1px;
border-top: 1px solid #ddd;
text-align: center;
}
.demo_line_02 span {
position: relative;
top: -10px;
background: #666;/*背景可改为白色*/
padding: 0 20px;
}
</
style>
</
head>
<
body>
<
div class="demo_line_01">分割线 </div>
<
div class="demo_line_02"><span>分割线</span></div>
</
body>
-----------------------------------------------------------------------------------
11.20 css3移动端

CSS3 修改和去除移动端点击事件出现的背景框 (tap-highlight-color)

移动端页面时学到了很多CSS3的有用属性,其中有一个印象比较深刻的属性:-webkit-tap-highlight-color

参见 http://css-infos.net/property/-webkit-tap-highlight-color

这个属性是用于设定元素在移动设备(如Adnroid、iOS)上被触发点击事件时,响应的背景框的颜色。

例如在Adnroid版本的微信中,点击a标签时将会出现一个橙色的小框表示点击的响应。

此时,如果对元素设置了tap-highlight-color值,例如:

-webkit-tap-highlight-color: rgba(240,240,240,0.7);

则可改变元素被点击时背景框的颜色。

如果需要背景框不显示,则可以将rgba中的alpha值设为0即可,例如-webkit-tap-highlight-color : rgba(0,0,0,0);

另外还有一个设置选中文字颜色的方法。

通常我们选中文字时的背景色是蓝色。我们可以用以下样式去设置网页的选中内容的样式:

::selection             { background:#FFF; color:#333; }
::-moz-selection    { background:#FFF; color:#333; }
::-webkit-selection { background:#FFF; color:#333;}

如果要去掉选中时的颜色,把background都置为none就行了。

浏览器:
WebKit” 即指代使用Webkit内核的浏览器(Safari、Chrome、iPhone、iPad、Android等)
Gecko“指代采用Gecko内核的浏览器(Firefox等)。然后有的属性是官方CSS 2.1. 规范的一部分,这意味着更多的浏览器甚至一些古老的浏览器也会支持它们
最后,一个CSS3 的标签标明遵守这个标准,被最新的浏览器版本——比如Firefox 4、Chrome 10、Safari 5、Opera 11.10以及IE9支持的属性。

css3属性  -webkit-font-smoothing

CSS3里面加入了一个“-webkit-font-smoothing”属性,可以使页面上的字体抗锯齿,使用后字体看起来会更清晰舒服

加上之后就顿时感觉页面小清晰了。 淘宝也在用哦!

它有三个属性: 

none                                     ------ 对低像素的文本比较好 

subpixel-antialiased                ------默认值 

antialiased                             ------抗锯齿很好 

例子: 

body{ 

   -webkit-font-smoothing: antialiased; 

国外某网站例子

附:-moz-osx-font-smoothing: inherit | grayscale

这个属性也是更清晰的作用,特别是图标文字流行的今天。

--------------------------------------------------------

2016.1.8 

 

rem特点 

        rem是CSS3新增的一个相对单位(root em,根em)。这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。目前,除了IE8及更早版本外,所有浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小。下面就是

p {font-size:14px; font-size:.875rem;}


 

-------------------------------------------------------------------------------------------
12.16  表格间隔变色
<style>
table, th , td {
  border: 1px solid grey;
  border-collapse: collapse;
  padding: 5px;
}
table tr:nth-child(odd) {
  background-color: #f1f1f1;
}
table tr:nth-child(even) {
  background-color: #ffffff;
}
</style>
--------------------------------------------------------------------
yi‘d
.css(‘backgroundColor‘,‘transparent‘)
ellipse,椭圆形圆角border-radius
border-radius:50% / 100% 100% 0 0;
border-radius:100% 0 0 100% / 50%
border-radius:100% 0 0 0;
clip-path : polygon(50% 0,100% 50%;50% 100%。0 50%)
1/4的椭圆
css中的连字符- ,js不认识,所有需要改成第二个单词 的首字母大写,如borderLeftWidth

.clear_f {clear: both;overflow: hidden;height: 0;}
.clear {clear: both;height: 0px;width: 0px;border: none;overflow: hidden;}
border:1px solid #ddd;
display: table-cell;
text-align: center;
vertical-align: middle;
 
------------------------
<div class="pageNav ">
 <a class="pagePrev" style="display:none" href="?page=0">&lt;上一页</a>
 <a class="currentpage" href="?page=0">1</a>
 <a href="?page=1">2</a>
 <a href="?page=2">3</a>
 <a href="?page=3">4</a>
 <a href="?page=4">5</a>
 <a href="?page=5">6</a>
 <a href="?page=6">7</a>
 <a href="?page=7">8</a>
 <a href="?page=8">9</a>
 <a href="?page=9">10</a>
 <i>...</i>
 <a href="?page=62">63</a>
 <a class="pageNext" style="" href="?page=1">下一页&gt;</a>
 <a class="pageNext2" style="background: none; border: none; height: 58px; width: 55px; position: absolute; right: 0; top: 0;" href="?page=1"> </a>
</div>
技术分享
技术分享
属性选择器
技术分享
技术分享
半月形  100px;border 2px
技术分享
让新一代的选择器兼容旧版浏览器
,如果你真的需要支持旧版IE,Keith Clark的Selectivizr
http://selectivizr.com)脚本可以帮忙解围。不过它依赖于现有的JavaScript库从而为IE6~
IE8添加对新选择器的支持。为了添加浏览器的支持,请下载Selectivizr并应用到你的站点,然后确认你也将
一个Selectivizr站点列出的兼容程序库应用到页面(在本书的例子里,我使用的是
NWMathcer)。
技术分享
要让IE 6~IE 8识别未知元素,你要在
DOM中给每一个未知元素创建一个实例,例如:
 
技术分享
这段代码将“HTML5 shiv”应用到代码
技术分享
技术分享

 

css3

标签:

原文地址:http://www.cnblogs.com/zyjzz/p/5747574.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!