美麗的CSS圖形和HTML5

来源:http://www.cnblogs.com/chengzixin/archive/2017/06/14/7011268.html
-Advertisement-
Play Games

1.HTML5基礎 文檔類型 使用video和audio標簽播放視頻和音頻 2.彈性盒子 box-sizing:border-box/content-box(預設值) 3.圓角邊框 Border-raduis:左上角,右上角,右下角,左下角。 CSS 其語法的日新月異,讓很多以前完成不了的事情,現在 ...


1.HTML5基礎

文檔類型

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">

 

Transitional:過渡類型

Strict:嚴格類型

FrameSet:框架類型

<!DOCTYPE html>

使用videoaudio標簽播放視頻和音頻

 <video controls>
         <source src="video/video.webm" type="video/webm"/>
         <source src="video/video.mp4" type="video/mp4"/>
     </video>

 

 

2.彈性盒子

 

box-sizing:border-box/content-box(預設值)

 

 

3.圓角邊框

 

 Border-raduis:左上角,右上角,右下角,左下角。

 

 

CSS 其語法的日新月異,讓很多以前完成不了的事情,現在可以非常輕鬆的做到。說幾個比較新的強大的 CSS 功能:

  • clip-path
  • shape-outside

shape 的意思是圖形,CSS shapes 也就是 CSS 圖形的意思,也就是使用 CSS 生成各種圖形(圓形、矩形、橢圓、多邊形等幾何圖形)。

CSS3之前,我們能做的只有矩形,四四方方,條條框框。

CSS3

CSS3出來後,我們有了更廣闊的施展空間,通過

  • border-radius
  • border
  • transform
  • 偽元素配合
  • gradient 漸變

我們能夠作出非常多的幾何圖形。

除去最常見的矩形,圓形(border-radius),下麵稍微列舉一些其他幾何圖形:

//01圓角邊的css 
#circle{
            width: 300px;
            height: 300px;
            border: 1px solid red;
            border-radius: 10px;
            box-shadow: 5px 5px 5px green;
        }
<div id="circle">我是圓角邊的div</div>
//02圓形的css加圖片
#circleshape{
            width: 300px;
            height: 300px;
            border: 1px solid red;
            border-radius: 150px;
            background: url("img/001.jpg") 0px 0px no-repeat;
            background-size: cover;
            opacity: 0.7;
            transition: all 5s;
        }
        #circleshape:hover{
             transform: rotate(300deg) scale(1.5);
             transition: all 5s linear;
        }
<div id="circleshape">我是圓形的div</div>

//03半圓形的CSS
 #halfcircle{
            width: 300px;
            height: 150px;
            border: 1px solid red;
            border-radius: 150px 150px 0px 0px;
            background:linear-gradient(to top,pink,palegreen);
            background:radial-gradient(palegoldenrod,palevioletred);
        }
<div id="halfcircle">我是半圓形的div</div>

//04四分之一圓形
 #halfcircles{
            width: 150px;
            height: 150px;
            border: 1px solid red;
            border-radius: 150px 0px 0px 0px;
        }
<div id="halfcircles">我是四分之一圓形的div</div>

 #halfcircless{
            width: 150px;
            height: 150px;
            border: 1px solid red;
            border-radius: 0px 150px 0px 0px;
        }
<div id="halfcircless">我是四分之一圓形的div</div>

 #halfcirclesss{
            width: 150px;
            height: 150px;
            border: 1px solid red;
            border-radius: 0px 0px 0px 150px;
        }
<div id="halfcirclesss">我是四分之一圓形的div</div>

#halfcirclessss{
            width: 150px;
            height: 150px;
            border: 1px solid red;
            border-radius: 0px 0px 150px 0px;
        }
<div id="halfcirclessss">我是四分之一圓形的div</div>

 #halfcircl{
            width: 300px;
            height: 150px;
            border: 1px solid red;
            border-radius: 0px 0px 150px 150px;
        }
<div id="halfcircl">我是半圓形的div</div>

//05:三角形
 .traingle {
            width: 0;
            height: 0;
            border-left: 50px solid transparent;
            border-right: 50px solid transparent;
            border-bottom: 100px solid yellowgreen;
        }

<div class="traingle ">
    我的三角形,我是div
</div>

//06:切角:多重線性漸變實現切角。
  .notching {
            width: 40px;
            height: 40px;
            padding: 40px;
            background: linear-gradient(135deg, transparent 15px, yellowgreen 0) top left,
            linear-gradient(-135deg, transparent 15px, yellowgreen 0) top right,
            linear-gradient(-45deg, transparent 15px, yellowgreen 0) bottom right,
            linear-gradient(45deg, transparent 15px, yellowgreen 0) bottom left;
            background-size: 50% 50%;
            background-repeat: no-repeat;

        }

<div class="notching">
    我是切角,我是div
</div>

//07:橢圓形
 .ellipse {
            width: 120px;
            height: 160px;
            background-color: yellowgreen;
            border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
        }
<div class="ellipse">
    我是橢圓形,我是div
</div>

08:梯形:偽元素加旋轉透視實現梯形
 .trapezoid{

            position: relative;

            width: 60px;

            padding: 60px;

        }



        .trapezoid::before{

            content:"";

            position: absolute;

            top: 0; right: 0; bottom: 0; left: 0;

            transform: perspective(20px) scaleY(1.3) rotateX(5deg);

            transform-origin: bottom;

            background: yellowgreen;

        }

<div class="trapezoid">
    我是上面短的梯形,我是div
</div>

    .trapezoids {

            position: relative;

            width: 60px;

            border-top: 60px solid yellowgreen;

            border-left: 40px solid transparent;

            border-right: 40px solid transparent;

        }
<div class="trapezoids">
    我是下麵短的梯形,我是div
</div>

//09.五邊形:梯形加上三角形,很容易就組合成一個五邊形,這裡需要藉助一個偽元素實現:

.pentagon {

    position: relative;

    width: 60px;

    border-bottom: 60px solid yellowgreen;

    border-left: 40px solid transparent;

    border-right: 40px solid transparent; 

}
.pentagon::before {

    content:"";

    position: absolute;

    top: 60px;

    left: -40px;

    border-top: 60px solid yellowgreen;

    border-left: 70px solid transparent;

    border-right: 70px solid transparent;

}

//10六邊形

看看上面的梯形,如果兩個反方向且底邊同樣大小的梯形,疊加在一起,是不是就能得到一個六邊形呢

.pentagon {

    position: relative;

    width: 60px;

    border-bottom: 60px solid yellowgreen;

    border-left: 40px solid transparent;

    border-right: 40px solid transparent;

}

.pentagon::before {

    content: "";

    position: absolute;

    width: 60px;

    height: 0px;

    top: 60px;

    left: -40px;

    border-top: 60px solid yellowgreen;

    border-left: 40px solid transparent;

    border-right: 40px solid transparent;

}

//11:八邊形

六邊形都解決了,八邊形也不在話下,一個矩形加上兩個梯形,可以合成一個八邊形。

.octagon {

    position: relative;

    width: 40px;

    height: 100px;

    background: yellowgreen;

}

.octagon::before {

    content: "";

    height: 60px;

    position: absolute;

    top: 0;

    left: 40px;

    border-left: 30px solid yellowgreen;

    border-top: 20px solid transparent;

    border-bottom: 20px solid transparent;

}

.octagon::after {

    content: "";

    height: 60px;

    position: absolute;

    top: 0;

    left: -30px;

    border-right: 30px solid yellowgreen;

    border-top: 20px solid transparent;

    border-bottom: 20px solid transparent;

}
//12:五角星

好的,探索完多邊形,我們繼續探索X角星。

先來看看五角星,要怎麼實現呢?當然是直接打出來啦 -- ★☆

.star {

   margin: 50px 0;

   position: relative;

   width: 0;

   border-right: 100px solid transparent;

   border-bottom: 70px  solid yellowgreen;

   border-left: 100px solid transparent;

   transform: rotate(35deg) scale(.6);

}

.star:before {

    content: '';

    position: absolute;

    border-bottom: 80px solid yellowgreen;

    border-left: 30px solid transparent;

    border-right: 30px solid transparent;

    top: -45px;

    left: -65px;

    transform: rotate(-35deg);

}

.star:after {

    content: '';

    position: absolute;

    top: 3px;

    left: -105px;

    border-right: 100px solid transparent;

    border-bottom: 70px solid yellowgreen;

    border-left: 100px solid transparent;

    transform: rotate(-70deg);

}

//12:六角星

六角星呢?想象一下,一個向上的三角形 ▲,疊加上一個向下的三角形 ▼,就可以得到一個六邊形:

.sixstar {

    position: relative;

    width: 0;

    border-left: 50px solid transparent;

    border-right: 50px solid transparent;

    border-bottom: 100px solid yellowgreen;

}

.sixstar:after {

    content: "";

    position: absolute;

    border-left: 50px solid transparent;

    border-right: 50px solid transparent;

    border-top: 100px solid yellowgreen;

    top: 30px;

    left: -50px;

}
//13:八角星

八角星呢?八個角那麼多呢。其實使用兩個矩形進行旋轉拼接就可以了。

.eightstar {

    position: relative;

    width: 100px;

    height: 100px;

    background-color: yellowgreen;

    transform: rotate(30deg);

}

 

.eightstar::before {

    content: "";

    position: absolute;

    top: 0;

    left: 0;

    width: 100px;

    height: 100px;

    transform: rotate(45deg);

    background-color: yellowgreen;

}
//14:十二角星

好。最後多角星再來一個十二級角星。在八角星的基礎上,再增加一個矩形,就能得到十二角啦。也就是要過第一個偽元素。

.twelvestar {

    position: relative;

    width: 100px;

    height: 100px;

    margin-bottom: 100px!important;

    background-color: yellowgreen;

    transform: rotate(30deg);

}

 

.twelvestar::before {

    content: "";

    position: absolute;

    top: 0;

    left: 0;

    width: 100px;

    height: 100px;

    transform: rotate(30deg);

    background-color: yellowgreen;

}

 

.twelvestar::after {

    content: "";

    position: absolute;

    top: 0;

    left: 0;

    width: 100px;

    height: 100px;

    transform: rotate(60deg);

    background-color: yellowgreen;

}

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 上一面講述了向場景中添加物體對象。這一篇準備把每個功能點細細的講述一遍,一方面是為了加深自己的理解。另一方面希望能夠 幫助到有需要的人。 一、在學習WEBGL的時候,你應該先瞭解要創建一個WebGL程式需要哪些步驟。就跟弄梅菜扣肉一樣,需要哪些步驟。 初始化WebGL繪圖上下文 初始化著色器程式 建 ...
  • 文本樣式 列表 無序號列表: 有序號列表: ...
  • 模塊化就是通過每一個js里封裝一個方法:用exports將他輸出, 在下一個js用require的方法載入js時就會將方法輸出。然後在主頁面引入require.js; 模塊化基本寫法: require:載入一個模塊,後面跟的是一個js文件名 exports:輸出 module:模塊 舉一個例子: 第 ...
  • 比如我們定義一個TouchableOpacity點擊事件,該方法需要接收一個參數值,如下 那麼在TouchableOption組件的onPress屬性中應該這樣寫: 或者 ...
  • 1、下載npm包 官網下載npm安裝包,https://nodejs.org/en/,左邊是穩定版右邊是最新版。 2、解壓,創建鏈接 將壓縮包解壓到/opt(一般軟體放在該目錄)目錄下。可以看到bin目錄下有兩個可執行文件node和npm,在/usr/local/bin中創建該文件的鏈接 然後使用n ...
  • 前面的話 nodejs的模板引擎有很多, EJS是比較簡單和容易上手的。本文將詳細介紹EJS 概述 EJS是一個簡單高效的模板語言,通過數據和模板,可以生成HTML標記文本。可以說EJS是一個JavaScript庫,EJS可以同時運行在客戶端和伺服器端,客戶端安裝直接引入文件即可,伺服器端用npm包 ...
  • 在實際開發工作中,總會碰到像滾動,分頁,日曆等展示效果的業務需求,對於接觸過jQuery以及熟悉jQuery使用的人來說,首先想到的肯定是尋找現有的jQuery插件來滿足相應的展示需求。目前頁面中常用的一些組件,都有多種jQuery插件可供選擇,網路上也有很多專門收集jQuery插件的網站。利用jQ ...
  • 1.在函數中定義形參但沒有傳遞實參就相當於定義了變數但未賦值,所以下麵中的a就是undefined 2.在IIFE中,window作為實參傳遞進去,避免了執行代碼時,每次都到全局中尋找window從而提高了效率,但是為什麼形參中還要指定一個undefined呢,上面說過在函數中定義了形參就相當於定義 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...