1、===============================================================CSS3 多列

 CSS3 多列属性

 本章节我们将学习以下几个 CSS3 的多列属性:

 column-count          列数

 column-gap            列间隙

 column-rule-style     列间隔线形状

 column-rule-width     列间隔线宽度

 column-rule-color     列间隔线颜色

 column-rule           同时包含上面三种样式

 column-span           指定元素跨列

 column-width          指定列宽

 具体见 http://www.runoob.com/css3/css3-multiple-columns.html



 2、===============================================================CSS3 用户界面

 在 CSS3 中, 增加了一些新的用户界面特性来调整元素尺寸,框尺寸和外边框。

 resize

 box-sizing

 outline-offset



 CSS3 调整尺寸(Resizing)

 CSS3中,resize属性指定一个元素是否应该由用户去调整大小。

 div

 {

 resize:both;

 overflow:auto;

 }



 CSS3 方框大小调整(Box Sizing)

 box-sizing 属性允许您以确切的方式定义适应某个区域的具体内容。

 实例

 规定两个并排的带边框方框:

 div

 {

 box-sizing:border-box;

 -moz-box-sizing:border-box; /* Firefox */

 width:50%;

 float:left;

 }



 CSS3 外形修饰(outline-offset )

 outline-offset 属性对轮廓进行偏移,并在超出边框边缘的位置绘制轮廓。

 轮廓与边框有两点不同:

 轮廓不占用空间

 轮廓可能是非矩形

 这个 div 在边框之外 15 像素处有一个轮廓。

 div

 {

 border:2px solid black;

 outline:2px solid red;

 outline-offset:15px;

 }



 新的用户界面特性

 属性
 说明
 CSS

 appearance
 允许您使一个元素的外观像一个标准的用户界面元素
 3

 box-sizing
 允许你以适应区域而用某种方式定义某些元素
 3

 icon
 Provides the author the ability to style an element with an iconic equivalent
 3

 nav-down
 指定在何处使用箭头向下导航键时进行导航
 3

 nav-index
 指定一个元素的Tab的顺序
 3

 nav-left
 指定在何处使用左侧的箭头导航键进行导航
 3

 nav-right
 指定在何处使用右侧的箭头导航键进行导航
 3

 nav-up
 指定在何处使用箭头向上导航键时进行导航
 3

 outline-offset
 外轮廓修饰并绘制超出边框的边缘
 3

 resize
 指定一个元素是否是由用户调整大小
 3



 3、===============================================================CSS 图片

 圆角图片

 实例

 圆角图片:

 img {

     border-radius: 8px;

 }



 缩略图

 我们使用 border 属性来创建缩略图。



 实例

 img {

     border: 1px solid #ddd;

     border-radius: 4px;

     padding: 5px;

 }

 <img src="paris.jpg" alt="Paris">



 实例

 a {

     display: inline-block;

     border: 1px solid #ddd;

     border-radius: 4px;

     padding: 5px;

     transition: 0.3s;

 }

 a:hover {

     box-shadow: 0 0 2px 1px rgba

     (0, 140, 186, 0.5);

 }

 <a href="paris.jpg">

   <img src="paris.jpg" alt="Paris">

 </a>



 响应式图片

 响应式图片会自动适配各种尺寸的屏幕。

 实例中,你可以通过重置浏览器大小查看效果:

 如果你需要自由缩放图片,且图片放大的尺寸不大于其原始的最大值,则可使用以下代码:

 img {

     max-width: 100%;

     height: auto;

 }



 如何定位图片文本(绝对定位)

 卡片式图片(上图下文)



 图片滤镜  http://www.runoob.com/cssref/css3-pr-filter.html

 CSS filter 属性用为元素添加可视效果 (例如:模糊与饱和度) 。

 修改所有图片的颜色为黑白 (100% 灰度):

 img {

     -webkit-filter: grayscale(100%); /* Chrome, Safari, Opera */

     filter: grayscale(100%);

 }



 经典实例:

 <!DOCTYPE html>

 <html>

 <head>

 <style>

 img {

     width: 33%;

     height: auto;

     float: left; 

     max-width: 235px;

 }

 .blur {-webkit-filter: blur(4px);filter: blur(4px);}

 .brightness {-webkit-filter: brightness(250%);filter: brightness(250%);}

 .contrast {-webkit-filter: contrast(180%);filter: contrast(180%);}

 .grayscale {-webkit-filter: grayscale(100%);filter: grayscale(100%);}

 .huerotate {-webkit-filter: hue-rotate(180deg);filter: hue-rotate(180deg);}

 .invert {-webkit-filter: invert(100%);filter: invert(100%);}

 .opacity {-webkit-filter: opacity(50%);filter: opacity(50%);}

 .saturate {-webkit-filter: saturate(7); filter: saturate(7);}

 .sepia {-webkit-filter: sepia(100%);filter: sepia(100%);}

 .shadow {-webkit-filter: drop-shadow(8px 8px 10px green);filter: drop-shadow(8px 8px 10px green);}

 </style>

 </head>

 <body>

 <p><strong>注意:</strong> Internet Explorer <span lang="no-bok">或 Safari 5.1 (及更早版本)</span> 不支持该属性。</p>

 <img src="pineapple.jpg" alt="Pineapple" width="300" height="300">

 <img class="blur" src="pineapple.jpg" alt="Pineapple" width="300" height="300">

 <img class="brightness" src="pineapple.jpg" alt="Pineapple" width="300" height="300">

 <img class="contrast" src="pineapple.jpg" alt="Pineapple" width="300" height="300">

 <img class="grayscale" src="pineapple.jpg" alt="Pineapple" width="300" height="300">

 <img class="huerotate" src="pineapple.jpg" alt="Pineapple" width="300" height="300">

 <img class="invert" src="pineapple.jpg" alt="Pineapple" width="300" height="300">

 <img class="opacity" src="pineapple.jpg" alt="Pineapple" width="300" height="300">

 <img class="saturate" src="pineapple.jpg" alt="Pineapple" width="300" height="300">

 <img class="sepia" src="pineapple.jpg" alt="Pineapple" width="300" height="300">

 <img class="shadow" src="pineapple.jpg" alt="Pineapple" width="300" height="300">

 </body>

 </html>





 响应式图片相册

 实例

 .responsive {

     padding: 0 6px;

     float: left;

     width: 24.99999%;

 }

 @media only screen and (max-width: 700px){

     .responsive {

         width: 49.99999%;

         margin: 6px 0;

     }

 }

 @media only screen and (max-width: 500px){

     .responsive {

         width: 100%;

     }

 }



 图片 Modal(模态)弹出框

 本实例演示了如何结合 CSS 和 JavaScript 来一起渲染图片。

 首先,我们使用 CSS 来创建 modal 窗口 (对话框), 默认是隐藏的。

 然后,我们使用 JavaScript 来显示模态窗口,当我们点击图片时,图片会在弹出的窗口中显示:

 <!DOCTYPE html>

 <html>

 <head>

 <style>

 #myImg {

     border-radius: 5px;

     cursor: pointer;

     transition: 1s;

 }

 #myImg:hover {opacity: 0.6;}

 /* The Modal (background) */

 .modal {

     display: none; /* Hidden by default */

     position: fixed; /* Stay in place */

     z-index: 1; /* Sit on top */

     padding-top: 100px; /* Location of the box */

     left: 0;

     top: 0;

     width: 100%; /* Full width */

     height: 100%; /* Full height */

     overflow: auto; /* Enable scroll if needed */

     background-color: rgb(0,0,0); /* Fallback color */

     background-color: rgba(0,0,0,0.8); /* Black w/ opacity */

 }

 /* Modal Content (image) */

 .modal-content {

     margin: auto;

     display: block;

     width: 80%;

     max-width: 700px;

 }

 /* Caption of Modal Image */

 #caption {

     margin: auto;

     display: block;

     width: 80%;

     max-width: 700px;

     text-align: center;

     color: #ccc;

     padding: 10px 0;

     height: 150px;

 }

 /* Add Animation */

 .modal-content, #caption {    

     -webkit-animation-name: zoom;

     -webkit-animation-duration: 0.6s;

     animation-name: zoom;

     animation-duration: 2s;

 }

 @keyframes zoom {

     from {transform: scale(0.1)} 

     to {transform: scale(1)}

 }

 /* The Close Button */

 .close {

     position: absolute;

     top: 15px;

     right: 35px;

     color: #f1f1f1;

     font-size: 40px;

     font-weight: bold;

     transition: 2s;

 }



 .close:hover,

 .close:focus {

     color: #bbb;

     text-decoration: none;

     cursor: pointer;

 }



 /* 100% Image Width on Smaller Screens */

 @media only screen and (max-width: 700px){

     .modal-content {

         width: 100%;

     }

 }

 </style>

 </head>

 <body>

 <img id="myImg" src="http://www.runoob.com/wp-content/uploads/2016/04/img_lights.jpg" alt="Northern Lights, Norway" width="300" height="200">



 <!-- The Modal -->

 <div id="myModal" class="modal">

   <span class="close">×</span>

   <img class="modal-content" id="img01">

   <div id="caption"></div>

 </div>



 <script>

 // 获取模态窗口

 var modal = document.getElementById('myModal');



 // 获取图片模态框,alt 属性作为图片弹出中文本描述

 var img = document.getElementById('myImg');

 var modalImg = document.getElementById("img01");

 var captionText = document.getElementById("caption");

 img.onclick = function(){

     modal.style.display = "block";

     modalImg.src = this.src;

     modalImg.alt = this.alt;

     captionText.innerHTML = this.alt;

 }



 // 获取 <span> 元素,设置关闭模态框按钮

 var span = document.getElementsByClassName("close")[0];



 // 点击 <span> 元素上的 (x), 关闭模态框

 span.onclick = function() { 

     modal.style.display = "none";

 }

 </script>



 </body>

 </html>



 4、===============================================================CSS 按钮

 <!DOCTYPE html>

 <html>

 <head>

 <style>

 .button {

     background-color: #4CAF50;

     border: none;

     color: white;

     padding: 15px 32px;

     text-align: center;

     text-decoration: none;

     display: inline-block;

     font-size: 16px;

     margin: 4px 2px;

     cursor: pointer;

 }

 </style>

 </head>

 <body>

 <h2>CSS 按钮</h2>

 <button>默认按钮</button>

 <a href="#" class="button">链接按钮</a>

 <button class="button">按钮</button>

 <input type="button" class="button" value="输入框按钮">

 </body>

 </html>



 按钮颜色

 <!DOCTYPE html>

 <html>

 <head>

 <style>

 .button {

     background-color: #4CAF50; /* Green */

     border: none;

     color: white;

     padding: 15px 32px;

     text-align: center;

     text-decoration: none;

     display: inline-block;

     font-size: 16px;

     margin: 4px 2px;

     cursor: pointer;

 }

 .button2 {background-color: #008CBA;} /* Blue */

 .button3 {background-color: #f44336;} /* Red */ 

 .button4 {background-color: #e7e7e7; color: black;} /* Gray */ 

 .button5 {background-color: #555555;} /* Black */

 </style>

 </head>

 <body>

 <h2>按钮颜色</h2>

 <p>我们可以使用 background-color 属性来设置按钮颜色:</p>

 <button class="button">Green</button>

 <button class="button button2">Blue</button>

 <button class="button button3">Red</button>

 <button class="button button4">Gray</button>

 <button class="button button5">Black</button>

 </body>

 </html>



 按钮大小

 我们可以使用 font-size 属性来设置按钮大小:

 <!DOCTYPE html>

 <html>

 <head>

 <style>

 .button {

     background-color: #4CAF50; /* Green */

     border: none;

     color: white;

     padding: 15px 32px;

     text-align: center;

     text-decoration: none;

     display: inline-block;

     font-size: 16px;

     margin: 4px 2px;

     cursor: pointer;

 }

 .button1 {font-size: 10px;}

 .button2 {font-size: 12px;}

 .button3 {font-size: 16px;}

 .button4 {font-size: 20px;}

 .button5 {font-size: 24px;}

 </style>

 </head>

 <body>

 <h2>按钮大小</h2>

 <p>我们可以使用 font-size 属性来设置按钮大小:</p>

 <button class="button button1">10px</button>

 <button class="button button2">12px</button>

 <button class="button button3">16px</button>

 <button class="button button4">20px</button>

 <button class="button button5">24px</button>

 </body>

 </html>



 圆角按钮

 <!DOCTYPE html>

 <html>

 <head>

 <style>

 .button {

     background-color: #4CAF50; /* Green */

     border: none;

     color: white;

     padding: 15px 32px;

     text-align: center;

     text-decoration: none;

     display: inline-block;

     font-size: 16px;

     margin: 4px 2px;

     cursor: pointer;

 }

 .button1 {border-radius: 2px;}

 .button2 {border-radius: 4px;}

 .button3 {border-radius: 8px;}

 .button4 {border-radius: 12px;}

 .button5 {border-radius: 50%;}

 </style>

 </head>

 <body>

 <h2>圆角按钮</h2>

 <p>我们可以使用 border-radius 属性来设置圆角按钮:</p>

 <button class="button button1">2px</button>

 <button class="button button2">4px</button>

 <button class="button button3">8px</button>

 <button class="button button4">12px</button>

 <button class="button button5">50%</button>

 </body>

 </html>



 按钮边框颜色

 <!DOCTYPE html>

 <html>

 <head>

 <style>

 .button {

     background-color: #4CAF50; /* Green */

     border: none;

     color: white;

     padding: 15px 32px;

     text-align: center;

     text-decoration: none;

     display: inline-block;

     font-size: 16px;

     margin: 4px 2px;

     cursor: pointer;

 }

 .button1 {

     background-color: white; 

     color: black; 

     border: 2px solid #4CAF50;

 }

 .button2 {

     background-color: white; 

     color: black; 

     border: 2px solid #008CBA;

 }

 .button3 {

     background-color: white; 

     color: black; 

     border: 2px solid #f44336;

 }

 .button4 {

     background-color: white;

     color: black;

     border: 2px solid #e7e7e7;

 }

 .button5 {

     background-color: white;

     color: black;

     border: 2px solid #555555;

 }

 </style>

 </head>

 <body>

 <h2>按钮边框颜色</h2>

 <p>我们可以使用 border 属性设置按钮边框颜色:</p>

 <button class="button button1">Green</button>

 <button class="button button2">Blue</button>

 <button class="button button3">Red</button>

 <button class="button button4">Gray</button>

 <button class="button button5">Black</button>

 </body>

 </html>



 鼠标悬停按钮

 我们可以使用 :hover 选择器来修改鼠标悬停在按钮上的样式。

 <!DOCTYPE html>

 <html>

 <head>

 <style>

 .button {

     background-color: #4CAF50; /* Green */

     border: none;

     color: white;

     padding: 16px 32px;

     text-align: center;

     text-decoration: none;

     display: inline-block;

     font-size: 16px;

     margin: 4px 2px;

     -webkit-transition-duration: 0.4s; /* Safari */

     transition-duration: 0.4s;

     cursor: pointer;

 }

 .button1 {

     background-color: white; 

     color: black; 

     border: 2px solid #4CAF50;

 }

 .button1:hover {

     background-color: #4CAF50;

     color: white;

 }

 .button2 {

     background-color: white; 

     color: black; 

     border: 2px solid #008CBA;

 }

 .button2:hover {

     background-color: #008CBA;

     color: white;

 }

 .button3 {

     background-color: white; 

     color: black; 

     border: 2px solid #f44336;

 }

 .button3:hover {

     background-color: #f44336;

     color: white;

 }

 .button4 {

     background-color: white;

     color: black;

     border: 2px solid #e7e7e7;

 }

 .button4:hover {background-color: #e7e7e7;}

 .button5 {

     background-color: white;

     color: black;

     border: 2px solid #555555;

 }

 .button5:hover {

     background-color: #555555;

     color: white;

 }

 </style>

 </head>

 <body>

 <h2>鼠标悬停按钮</h2>

 <p>我们可以使用 :hover 选择器来修改鼠标悬停在按钮上的样式。</p>

 <p><strong>提示:</strong> 我们可以使用 <code>transition-duration</code> 属性来设置 "hover" 效果的速度:</p>

 <button class="button button1">Green</button>

 <button class="button button2">Blue</button>

 <button class="button button3">Red</button>

 <button class="button button4">Gray</button>

 <button class="button button5">Black</button>

 </body>

 </html>



 按钮阴影

 阴影按钮

 我们可以使用 box-shadow 属性来为按钮添加阴影:

 .button1 {

     box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);

 }



 .button2:hover {

     box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24), 0 17px 50px 0 rgba(0,0,0,0.19);

 }



 禁用按钮

 我们可以使用 opacity 属性为按钮添加透明度 (看起来类似 "disabled" 属性效果)。

 提示: 我么可以添加 cursor 属性并设置为 "not-allowed" 来设置一个禁用的图片:

 <!DOCTYPE html>

 <html>

 <head>

 <style>

 .button {

     background-color: #4CAF50; /* Green */

     border: none;

     color: white;

     padding: 15px 32px;

     text-align: center;

     text-decoration: none;

     display: inline-block;

     font-size: 16px;

     margin: 4px 2px;

     cursor: pointer;

 }

 .disabled {

     opacity: 0.6;

     cursor: not-allowed;

 }

 </style>

 </head>

 <body>

 <h2>禁用按钮</h2>

 <p>我们可以使用 opacity 属性为按钮添加透明度 (看起来类似 "disabled" 属性效果)。</p>

 <button class="button">正常按钮</button>

 <button class="button disabled">禁用按钮</button>

 </body>

 </html>



 按钮宽度

 默认情况下,按钮的大小有按钮上的文本内容决定( 根据文本内容匹配长度 )。 我们可以使用 width 属性来设置按钮的宽度:

 提示: 如果要设置固定宽度可以使用像素 (px) 为单位,如果要设置响应式的按钮可以设置为百分比。

 .button1 {width: 250px;}

 .button2 {width: 50%;}

 .button3 {width: 100%;}



 按钮组

 移除外边距并添加 float:left 来设置按钮组:

 <!DOCTYPE html>

 <html>

 <head>

 <style>

 .button {

     background-color: #4CAF50; /* Green */

     border: none;

     color: white;

     padding: 15px 32px;

     text-align: center;

     text-decoration: none;

     display: inline-block;

     font-size: 16px;

     cursor: pointer;

     float: left;

 }

 .button:hover {

     background-color: #3e8e41;

 }

 </style>

 </head>

 <body>

 <h2>按钮组</h2>

 <p>移除外边距并添加 float:left 来设置按钮组:</p>

 <button class="button">Button</button>



 带边框按钮组

 我们可以使用 border 属性来设置带边框的按钮组:

 <!DOCTYPE html>

 <html>

 <head>

 <style>

 .button {

     background-color: #4CAF50; /* Green */

     border: 1px solid green;

     color: white;

     padding: 15px 32px;

     text-align: center;

     text-decoration: none;

     display: inline-block;

     font-size: 16px;

     cursor: pointer;

border-radius:6px;

     float: left;

 }

 .button:hover {

     background-color: #3e8e41;

 }

 </style>

 </head>

 <body>

 <h2>带边框按钮组</h2>

 <p>Add borders to create a bordered button group:</p>

 <button class="button">Button</button>

 <button class="button">Button</button>

 <button class="button">Button</button>

 <button class="button">Button</button>

 <p style="clear:both"><br>记住要清除浮动,否则下一个 p 元素的按钮也会显示在同一行。</p>

 </body>

 </html>

 <button class="button">Button</button>

 <button class="button">Button</button>

 <button class="button">Button</button>

 <p style="clear:both"><br>记住要清除浮动,否则下一个 p 元素的按钮也会显示在同一行。</p>

 </body>

 </html>



 按钮动画

 鼠标移动到按钮上后添加箭头标记:

 <!DOCTYPE html>

 <html>

 <head>

 <style>

 .button {

   display: inline-block;

   border-radius: 4px;

   background-color: #f4511e;

   border: none;

   color: #FFFFFF;

   text-align: center;

   font-size: 28px;

   padding: 20px;

   width: 200px;

   transition: all 0.5s;

   cursor: pointer;

   margin: 5px;

 }

 .button span {

   cursor: pointer;

   display: inline-block;

   position: relative;

   transition: 0.5s;

 }

 .button span:after {

   content: '»';

   position: absolute;

   opacity: 0;

   top: 0;

   right: -20px;

   transition: 0.5s;

 }

 .button:hover span {

   padding-right: 25px;

 }

 .button:hover span:after {

   opacity: 1;

   right: 0;

 }

 </style>

 </head>

 <body>

 <h2>按钮动画</h2>

 <button class="button" style="vertical-align:middle"><span>Hover </span></button>

 </body>

 </html>



 波纹效果

 <!DOCTYPE html>

 <html>

 <head>

 <style>

 .button {

     position: relative;

     background-color: #4CAF50;

     border: none;

     font-size: 28px;

     color: #FFFFFF;

     padding: 20px;

     width: 200px;

     text-align: center;

     text-decoration: none;

     overflow: hidden;

     cursor: pointer;

 }

 .button:after {

     content: "";

     background: #90EE90;

     position: absolute;

left:0px;

top:0px;

width:200%;

height:100%;

     opacity: 0;

     transition: all 0.4s

 }

 .button:active:after {

left:0px;

top:50%;

width:0px;

height:0px;

     opacity: 1;

     transition: 0s;

 }

 </style>

 </head>

 <body>

 <button class="button">Click Me</button>

 </body>

 </html>



     

 按钮动画 - "按压效果"

 <!DOCTYPE html>

 <html>

 <head>

 <style>

 .button {

   display: inline-block;

   padding: 15px 25px;

   font-size: 24px;

   cursor: pointer;

   text-align: center;   

   text-decoration: none;

   outline: none;

   color: #fff;

   background-color: #4CAF50;

   border: none;

   border-radius: 15px;

   box-shadow: 0 4px #999;

 }

 .button:hover {background-color: #3e8e41}

 .button:active {

   background-color: #3e8e41;

   box-shadow: 0 3px #666;

   transform: translateY(1px);

 }

 </style>

 </head>

 <body>

 <button class="button">Click Me</button>

 </body>

 </html>