并不简单的翻页时钟(三):学到的知识

目录

 

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")

 

 

 

 

 

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