並不簡單的翻頁時鐘(三):學到的知識

目錄

 

HTML

data-set

語法:

CSS

flex佈局

語法:

:before & :after僞元素

語法:

line-height

baseline

transform:rotate(ndeg)

rotateX(ndeg)

rotateY(ndeg)

transform-origin:x y z

backface-visibility

animation

JavaScript

function作爲構造函數的使用

Date()方法 獲取日期、月份、年份、時間

添加/刪除類名 classList.add() & classList.remove()

語法:

 



HTML

data-set

data-set是HTML5的一個新特性,其作爲元素的attribute用於存放獲取數據

語法:

set :

 <div id="my-div" data-yourname="value">

get :

CSS : (常用於給僞元素:before :after 的 content 賦值)

 #my-div:after{
    attr(data-yourname)   
}

JavaScript :

var value=document.getElementById("my-div").dataset.yourname

 

CSS

flex佈局

flex的出現一定程度上解決了自適應佈局和垂直居中的難題。

語法:

定義在父元素上的屬性(用於規定子元素的排列方式)

#flex-parent{
    /*使用flex佈局*/
    display:flex/*行內元素使用inline-flex*/;
 
    /*設置主軸方向(子元素排列方向)*/
    flex-direction:row/*水平方向從左到右(默認)*/
                   row-reverse /*水平方向從右到左*/
                   column /*垂直方向由上到下*/
                   column-reverse /*垂直方向由下到上*/;
    
    /*換行行爲*/
    flex-wrap:nowrap/*不換行*/ wrap /*換行*/ wrap-reverse /*下一行出現在上邊*/;

    /*簡寫*/
    flex-flow:<flex-direction><flex-wrap>;

    /*主軸的對齊方式*/
    justify-content:flex-start /*左對齊(默認)*/
                    flex-end /*右對齊*/
                    center /*居中*/
                    space-between /*兩端對齊,子元素之間間隔相等*/
                    space-around /*子元素兩側間隔相等,子元素之間間隔比子元素與邊框間隔大一倍*/;
    
    /*垂直軸的對齊方式*/
    align-items:stretch/*如果子元素未設置高度或高度auto,則充滿整個父元素高度*/
               flex-start || flex-end || center /*與justify-content類似*/
               baseline /*子元素第一行的文字的基線對齊*/;

    /*存在多軸線時的對齊方式*/
    align-content:flex-start || flex-end || center || space-between || space-around ||                             
                  stretch/*(默認)*/;

定義在子元素上的屬性(定義某些特例的排列方式)

#div-child{
    /*子元素的排列順序*/
    order:<order-number>/*數值越小越靠前,默認0,允許負值*/;

    /*子元素的放大比例(如果有多餘空間)*/
    flex-grow:<grow-number>/*默認0,都爲1的時候所有子元素等分剩餘空間,若有一個爲2,則該元素多佔一倍空間*/;

    /*子元素縮小比例(如果空間不足)*/
    flex-shrink:<shrink-number>/*默認1,即空間不足會縮小,爲0則不縮小,不接受負值*/;

    /*子元素佔據的主軸空間(分配多餘空間前)*/
    flex-basis:<length> || auto/*默認auto,即子元素本來大小,若設置爲子元素的width和height的值,則該元素佔據固定空間*/;

    /*簡寫*/
    flex:<flex-grow><flex-shrink><flex-basis>/*後兩個屬性可不寫,默認 0 1 auto*/;

    /*子元素的對齊方式(定義在子元素的align-items)*/
    align-self:auto || flex-start || flex-end || center || baseline || stretch;

    
    
}

 

:before & :after僞元素

在CSS3的語法中,爲了將 僞元素 與 僞類 區分開將其寫做 ::before 和 ::after

語法:

#selector :before{
    content:''/*僞元素的內容*/
    /*------樣式-------*/
}

僞元素用於在當前元素之前/後創建一個元素,其值爲content的值,由於其在HTML結構中未定義,所以叫做僞元素

 

line-height

line-height爲行高,定義爲兩行文本基線(baseline)之間的距離

baseline

字母x的底端的水平線

 

transform:rotate(ndeg)

使元素旋轉n度

rotateX(ndeg)

以x軸3d旋轉

rotateY(ndeg)

以y軸3d旋轉

transform-origin:x y z

旋轉的原點 top bottom center left right px % 

 

Tips:使用JavaScript無法獲得旋轉的角度,獲得是matrix的矩陣值

 

backface-visibility

元素背面不可見

 

animation

#animation-div{
    animation:animation-name <duration>;
}

@keyframes animation-name{
    from{/*----CSS----*/}
    to{/*----CSS----*/}
}

@keyframes animation-name{
    0%{/*----CSS----*/}
    /*其他百分比階段的狀態*/
    100%{/*----CSS----*/}
}

 

 

JavaScript

function作爲構造函數的使用

語法:

function Constructor(param){
    this.property=param/*定義屬性*/
    /*------*/
}

var object=new Constructor

/*對象的方法定義在原型上,以便所有通過該構造函數創建的對象共享該方法*/
object.prototype.methodsName=function(){/*------*/}

 

 

Date()方法 獲取日期、月份、年份、時間

var now=new Date()/*獲取當前日期和時間*/

/*將日期和時間轉換爲字符串*/
now.toString()//April 27 HH:mm:ss timezone
now.toLocaleString()//2020/4/27 H:mm:ss

now.toDateString()//April 27 
now.toLocaleDateString()//2020/4/27

now.toTimeString()//HH:mm:ss timezone
now.toLocaleTimeString()//H:mm:ss


/*獲取當前日期*/
var date=now.getDate()//今天的日期
var week=now.getDay()//今天的星期
var month=now.getMonth()//當前月份
var year=now.getFullYear()//當前的四位年份

var hour=now.getHour()//獲取小時
var minute=now.getMinutes()//獲取分(方法名有s)
var second=now.getSeconds()//獲取秒(方法名有s)
var ms=now.getMillionseconds()//獲取毫秒(seconds首字母不大寫)

 

添加/刪除類名 classList.add() & classList.remove()

該方法常用於爲指定元素在某個時機添加類名以開始動畫,在某個時機移除類名以停止動畫

語法:

//添加類名
document.getElementById("selector").classList.add("className")

//刪除類名
document.getElementById("selector").classList.remove("className")

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章