92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线

首頁

vue框架漸進性的理解和mvvm模式的理解

seo達人

引言

現在市場很多前端開發的招聘崗位都或多或少的要求你要掌握vue,可以說vue在國內是非常的火爆的,下面我給大家介紹一下vue框架吧!

vue是漸進式框架



vue的核心是一個視圖模板引擎,但是這并不能說明vue不是一個框架,如上圖所示在聲明式渲染(視圖模板)基礎上,vue可以添加組件系統component,vue-router客戶端路由,vuex的狀態管理,vue-cli構建工具來構建一個完整的框架,更重要的是這些功能相互獨立,你可以任意選用你項目需要的部件,不一定非要全部整合在一起(就像是vuex它是一個很好的可以管理組件之間共享狀態的部件,但非必須在你的每一個項目中使用它,如果說你的項目相對簡單,組件之間的通信相對簡單你完全可以不使用它),可以看到漸進式,其實就是vue的使用方式,同時也能看到vue的設計理念

vue是mvvm模式

為什么說vue是mvvm模式呢?這個大家首先要知道mvvm是什么。mvvm是Model-View-ViewModel的簡寫,即模型視圖視圖模型。模型是指后端傳過來的數據,視圖是指我們看到的頁面,視圖模型是mvvm框架的核心,他是連接view和model的橋梁,它有兩個方向,第一將后端傳來的數據轉換成頁面可以看到的視圖,第二,將用戶在頁面上的交互轉化成為后端數據,我們稱之為雙向綁定。

總結mvvm模式的視圖和模型是不能直接通信的,它們通過ViewModel來通信,ViewModel通常要實現一個observer觀察者,當數據發生變化,ViewModel能夠監聽到數據的這種變化,然后通知到對應的視圖做自動更新,而當用戶操作視圖,ViewModel也能監聽到視圖的變化,然后通知數據做改動,這實際上就實現了數據的雙向綁定。并且MVVM中的View 和 ViewModel可以互相通信

vue框架可以理解為是ViewModel,它可以實現dom監聽和數據綁定

vue的數據綁定原理



當你把JavaScript對象傳入vue實例作為data選項,vue會遍歷此對象的所以屬性,并使用Object.defineProperty把這些屬性轉換為getter和setter,每一個組件都有一個watcher實例,它會在組件渲染過程中,把接觸過的數據記錄為依賴,當依賴的setter被觸發是,他會通知watcher,重而使關聯的數據重新渲染,以下是代碼展示。



<div id = "box"></div>

var obox = document.getElementById('box')

var obj = {}

object.defineProperty(obj,'myname',{

get () {

// obj設置了一個myname屬性,當訪問obj.myname屬性會執行get方法

},

set (data) {

// 當修改myname屬性會執行set方法

// data會得到你修改的值

obox.innerHTML = data

}

})



object.definePeoperty有一下缺點: {

1:無法監聽es6的set,map變化

2:無法監聽class類型的數據

3:屬性的新增和刪除也無法監聽

4:數組元素的新整和刪除也無法監聽

}




JS循環結構有哪些?循環結構概述

seo達人

所謂循環,就是重復執行一段代碼,計算機的判斷能力和人相比差的很遠,計算機更擅長一件事情——不停的重復。而我們在JavaScript中把這叫做循環。下面讓我們來了解了解JavaScript里的循環。



js循環結構有哪些

js循環結構有三種



for循環 ==> 用來多次遍歷代碼塊

while循環 ==> 當指定條件為true時,循環代碼塊

do while ==> 當指定條件偽true時,循環代碼塊

1、for循環

for是由兩個部分組成,條件控制和循環體

語法:



for(初始化表達式;循環條件表達式;循環后的操作表達式){

需要重復的代碼塊;

}



for語句結構如圖:



for循環的執行順序



1.初始化表達式

  1. 循環條件表達式
  2. 需要重復的代碼塊
  3. 循環后的操作表達式



    簡單的for循環,循環執行一次會改變一個變量的值

    舉例:輸出1到100的值



    for(var i=1; i <= 100; i++){

    //在循環開始時設置一個變量i;//定義運行循環的條件i<=100;//每個循環執行后,變量增加1

    console.log(i);

    }



    2、while循環

    while循環會重復執行一段代碼,直到某個條件不再滿足。

    語法:



    while(條件表達式語句){

    執行的代碼塊;

    }



    while循環結構如圖:



    while執行順序

    當我們的使用條件條件返回值是true,就會執行大括號里面的代碼塊,執行完大括號的語句之后,會重復大括號里的語句,直到判定條件返回值為false,才會結束循環。



    案例:



    var i = 0;

    while (i < 10){

    console.log(i);

    i++;

    }

    //while循環會先判定條件,再根據條件是否成立達成決定是否進入循環

    //如果條件一開始就是false ,則不會進入循環



    缺點:



    使用while語句的時候,一定要寫大括號

    如果沒有條件的話,會無限的運行下去,造成死循環。

    3、do while循環的結構

    do while 結構的基本原理和while結構是基本相同的,但是它保證循環體至少被執行一次。因為它是先執行代碼,后判斷條件

    語法:



    do {

    執行語句塊;

    }

    while(條件表達式語句);



    do while 執行順序:

    先執行一次code,再做判斷。與while循環不同,do while無論條件如何 都會執行一次代碼

    案例:



    var i = 0;

    do{

    console.log(i);

    i++;

    }while(i<10);



    while 和 do while的不同

    while: 先判斷 再執行 條件不成立 循環體 一遍都不執行

    do…while: 先執行 再判斷 條件不成立 循環體 至少執行一遍


H5之外部瀏覽器喚起微信分享

seo達人

最近在做一個手機站,要求點擊分享可以直接打開微信分享出去。而不是jiathis,share分享這種的點擊出來二維碼。在網上看了很多,都說APP能喚起微信,手機網頁實現不了。也找了很多都不能直接喚起微信。

總結出來一個可以直接喚起微信的。適應手機qq瀏覽器和uc瀏覽器。

下面上代碼,把這些直接放到要轉發的頁面里就可以了:

html部分:


  1. <script src="mshare.js"></script>//引進mshare.js
  2. <button data-mshare="0">點擊彈出原生分享面板</button>
  3. <button data-mshare="1">點擊觸發朋友圈分享</button>
  4. <button data-mshare="2">點擊觸發發送給微信朋友</button>

js部分:


  1. <script>
  2. var mshare = new mShare({
  3. title: 'Lorem ipsum dolor sit.',
  4. url: 'http://m.ly.com',
  5. desc: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quaerat inventore minima voluptates.',
  6. img: 'http://placehold.it/150x150'
  7. });
  8. $('button').click(function () {
  9. // 1 ==> 朋友圈 2 ==> 朋友 0 ==> 直接彈出原生
  10. mshare.init(+$(this).data('mshare'));
  11. });
  12. </script>

下面是mshare.js的代碼分享,把這些代碼新建一個js文件放進去,然后在頁面中引進就ok了。


  1. /**
  2. * 此插件主要作用是在UC和QQ兩個主流瀏覽器
  3. * 上面觸發微信分享到朋友圈或發送給朋友的功能
  4. */
  5. 'use strict';
  6. var UA = navigator.appVersion;
  7. /**
  8. * 是否是 UC 瀏覽器
  9. */
  10. var uc = UA.split('UCBrowser/').length > 1 ? 1 : 0;
  11. /**
  12. * 判斷 qq 瀏覽器
  13. * 然而qq瀏覽器分高低版本
  14. * 2 代表高版本
  15. * 1 代表低版本
  16. */
  17. var qq = UA.split('MQQBrowser/').length > 1 ? 2 : 0;
  18. /**
  19. * 是否是微信
  20. */
  21. var wx = /micromessenger/i.test(UA);
  22. /**
  23. * 瀏覽器版本
  24. */
  25. var qqVs = qq ? parseFloat(UA.split('MQQBrowser/')[1]) : 0;
  26. var ucVs = uc ? parseFloat(UA.split('UCBrowser/')[1]) : 0;
  27. /**
  28. * 獲取操作系統信息 iPhone(1) Android(2)
  29. */
  30. var os = (function () {
  31. var ua = navigator.userAgent;
  32. if (/iphone|ipod/i.test(ua)) {
  33. return 1;
  34. } else if (/android/i.test(ua)) {
  35. return 2;
  36. } else {
  37. return 0;
  38. }
  39. }());
  40. /**
  41. * qq瀏覽器下面 是否加載好了相應的api文件
  42. */
  43. var qqBridgeLoaded = false;
  44. // 進一步細化版本和平臺判斷
  45. if ((qq && qqVs < 5.4 && os == 1) || (qq && qqVs < 5.3 && os == 1)) {
  46. qq = 0;
  47. } else {
  48. if (qq && qqVs < 5.4 && os == 2) {
  49. qq = 1;
  50. } else {
  51. if (uc && ((ucVs < 10.2 && os == 1) || (ucVs < 9.7 && os == 2))) {
  52. uc = 0;
  53. }
  54. }
  55. }
  56. /**
  57. * qq瀏覽器下面 根據不同版本 加載對應的bridge
  58. * @method loadqqApi
  59. * @param {Function} cb 回調函數
  60. */
  61. function loadqqApi(cb) {
  62. // qq == 0
  63. if (!qq) {
  64. return cb && cb();
  65. }
  66. var script = document.createElement('script');
  67. script.src = (+qq === 1) ? '//3gimg.qq.com/html5/js/qb.js' : '//jsapi.qq.com/get?api=app.share';
  68. /**
  69. * 需要等加載過 qq 的 bridge 腳本之后
  70. * 再去初始化分享組件
  71. */
  72. script.onload = function () {
  73. cb && cb();
  74. };
  75. document.body.appendChild(script);
  76. }
  77. /**
  78. * UC瀏覽器分享
  79. * @method ucShare
  80. */
  81. function ucShare(config) {
  82. // ['title', 'content', 'url', 'platform', 'disablePlatform', 'source', 'htmlID']
  83. // 關于platform
  84. // ios: kWeixin || kWeixinFriend;
  85. // android: WechatFriends || WechatTimeline
  86. // uc 分享會直接使用截圖
  87. var platform = '';
  88. var shareInfo = null;
  89. // 指定了分享類型
  90. if (config.type) {
  91. if (os == 2) {
  92. platform = config.type == 1 ? 'WechatTimeline' : 'WechatFriends';
  93. } else if (os == 1) {
  94. platform = config.type == 1 ? 'kWeixinFriend' : 'kWeixin';
  95. }
  96. }
  97. shareInfo = [config.title, config.desc, config.url, platform, '', '', ''];
  98. // android
  99. if (window.ucweb) {
  100. ucweb.startRequest && ucweb.startRequest('shell.page_share', shareInfo);
  101. return;
  102. }
  103. if (window.ucbrowser) {
  104. ucbrowser.web_share && ucbrowser.web_share.apply(null, shareInfo);
  105. return;
  106. }
  107. }
  108. /**
  109. * qq 瀏覽器分享函數
  110. * @method qqShare
  111. */
  112. function qqShare(config) {
  113. var type = config.type;
  114. //微信好友 1, 微信朋友圈 8
  115. type = type ? ((type == 1) ? 8 : 1) : '';
  116. var share = function () {
  117. var shareInfo = {
  118. 'url': config.url,
  119. 'title': config.title,
  120. 'description': config.desc,
  121. 'img_url': config.img,
  122. 'img_title': config.title,
  123. 'to_app': type,
  124. 'cus_txt': ''
  125. };
  126. if (window.browser) {
  127. browser.app && browser.app.share(shareInfo);
  128. } else if (window.qb) {
  129. qb.share && qb.share(shareInfo);
  130. }
  131. };
  132. if (qqBridgeLoaded) {
  133. share();
  134. } else {
  135. loadqqApi(share);
  136. }
  137. }
  138. /**
  139. * 對外暴露的接口函數
  140. * @method mShare
  141. * @param {Object} config 配置對象
  142. */
  143. function mShare(config) {
  144. this.config = config;
  145. this.init = function (type) {
  146. if (typeof type != 'undefined') this.config.type = type;
  147. try {
  148. if (uc) {
  149. ucShare(this.config);
  150. } else if (qq && !wx) {
  151. qqShare(this.config);
  152. }
  153. } catch (e) {}
  154. }
  155. }
  156. // 預加載 qq bridge
  157. loadqqApi(function () {
  158. qqBridgeLoaded = true;
  159. });
  160. if (typeof module === 'object' && module.exports) {
  161. module.exports = mShare;
  162. } else {
  163. window.mShare = mShare;
  164. }

好了,這樣就可以直接喚起微信進行分享啦

事件冒泡和冒泡的阻止

seo達人

事件冒泡概念:當元素觸發了事件的時候,會依次向上觸發所有元素的相同事件。



事件冒泡的行為演示

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Document</title>

    <style>

     #a{

         background: pink;

         width: 400px;

         height: 400px;

     }

     #b{

         background: green;

         width: 300px;

         height: 300px;

     }

     #c{

         background: red;

         width: 200px;

         height: 200px;

     }

    </style>

</head>

<body>

    <div id="a">

        我是a

          <div id="b">

                我是b

             <div id="c">我是c</div>

          </div>

    </div>

    <script>

     var a = document.querySelector('#a')

     var b = document.querySelector('#b')

     var c = document.querySelector('#c')



     a.onclick = fn1;

     b.onclick = fn2;

     c.onclick = fn3;



     function fn1(){

         alert('a來了')

     }



     function fn2(){

         alert('b來了')

     }

     

     function fn3(){

         alert('c來了')

     }

    </script>

</body>

</html>



上面這段代碼一共有三個事件,三個div都分別綁定了單擊事件。在頁面中當單擊c會連續彈出3個提示框。這就是事件冒泡引起的現象。事件冒 泡的過程是:c --> b --> a 。c冒泡到b冒泡到a。



冒泡的阻止

方法:

1.event.stopPropagation(); 是事件對象Event的一個方法,作用是阻止目標元素事件冒泡到父級元素 2.event.cancelBubble = true; IE瀏覽器的方法



<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Document</title>

    <style>

     #a{

         background: pink;

         width: 400px;

         height: 400px;

     }

     #b{

         background: green;

         width: 300px;

         height: 300px;

     }



      #c{

         background: red;

         width: 200px;

         height: 200px;

     }

    </style>

</head>

<body>

    <div id="a">

        我是a

          <div id="b">

                我是b

             <div id="c">我是c</div>

          </div>

    </div>

    <script>

     var a = document.querySelector('#a')

     var b = document.querySelector('#b')

     var c = document.querySelector('#c')



     a.onclick = fn;

     b.onclick = fn;

     c.onclick = fn;



     function fn(event){

         var e = window.event || event;

         // 事件冒泡的阻止

         if(e.stopPropagation){

            e.stopPropagation();  // 通用寫法

         }else{

             e.cancelBubble = true; // 阻止IE

         }

         var str = this.innerHTML;

         alert(str)

     }

    </script>

</body>

</html>


網頁制作學習用好HTML字體標記及屬性

前端達人

我們在這里將要談的是有關文字的標記,包括字體大小、顏色、字型...等變化,適當的應用可以增加頁面的美觀!



常用字體標記



<Hn>...</Hn> 標題 ,設定標題字體大小, n = 1 ( 大 ) ~ 6 ( 小 ) 會自動跳下一行。通常用在如章節、段落等標題上。

如 : <H2> 標題 </H2>



標題

如 : <H3 ALIGN = CENTER> 標題 </H3> ( 標題置中 )

標題

<B>...</B> 粗體字 。

如 : <B> 粗體字 </B>



粗體字



<I>...</I> 斜體字 。

如 : <I> 斜體字 </I> 

斜體字



<U>...</U> 加底線 。

如 : <U> 加底線 </U> 

加底線



<DEL>...</DEL> 橫線 ( 表示刪除 )。

如 : <DEL> 橫線 </DEL> 

橫線



<TT>...</TT> 打字體 ( 固定寬度文字 )。

如 : <TT> 打字體 </TT> 

打字體



<SUP>...</SUP> 上標字 。

如 : 字體 <SUP> 上標字 </SUP> 

字體 上標字



<SUB>...</SUB> 下標字 。

如 : 字體 <SUB> 下標字 </SUB> 

字體 下標字



<!...> 注解 ( 不會顯示在瀏覽器上 ),可以多行。



如 : <! 更新日期 : 2000/1/1>



設定字體大小、顏色、字型



有關設定文字的方法共有以下幾種 :



1.設定HTML文件主體文字顏色。<BODY>...</BODY>標記。 



如 : <BODY TEXT=RED>...</BODY> 或 

<BODY TEXT=#FF0000>...</BODY>



2.設定基本字體大小、顏色、字型。<BASEFONT>...</BASEFONT>標記。



3.設定字體大小、顏色、字型。<FONT>...</FONT>標記。



<BASEFONT>...</BASEFONT> 設定基本字體 ,SIZE = 1 ~ 7,1 ( 最小 ) 7 ( 最大 )。

如 : <BASEFONT SIZE=4> 基本字體大小為 4 </BASEFONT> 

基本字體大小為 4



如 : <BASEFONT COLOR =#FF0000> 設定顏色 </BASEFONT> 

設定顏色



如 : <BASEFONT FACE = 標楷體 , 細明體 > 設定字型 </BASEFONT> 

設定字型



<BIG>...</BIG> 基本字體加大 。

如 : <BASEFONT SIZE=4> 基本字體大小為 4,</BASEFONT> 

<BIG> 加大為 5 </BIG> 

基本字體大小為 4, 加大為 5



<SMALL>...</SMALL> 基本字體減小 。

如 : <BASEFONT SIZE=4> 基本字體大小為 4,</BASEFONT> 

<SMALL> 減小為 3 </SMALL> 

基本字體大小為 4, 減小為 3



<FONT>...</FONT> 設定字體大小、顏色、字型 ,SIZE = 1 ~ 7,1 ( 最小 ) 7 ( 最大 )。

如 : <FONT SIZE=4> 字體大小為 4 </FONT> 

字體大小為 4



如 : <BASEFONT SIZE=4> 基本字體大小為 4 

<FONT SIZE= 1> 1字體大小為 5 </FONT> 

<FONT SIZE=-2> -2字體大小為 2 </FONT>...</BASEFONT> 

基本字體大小為 4 

1字體大小為 5 

-2字體大小為 2 



如 : <FONT COLOR =#FF0000> 設定顏色 </FONT> 

設定顏色



如 : <FONT FACE = 標楷體 , 細明體 > 設定字型 </FONT> 

設定字型



新建一個前端學習qun438905713,在群里大多數都是零基礎學習者,大家相互幫助,相互解答,并且還準備很多學習資料,歡迎零基礎的小伙伴來一起交流。


  1. 設定字體的大小分 : 絕對SIZE 如 : <FONT SIZE=4> 

    和 相對SIZE 如 : <FONT SIZE= 1> ( 以 BASEFONT 設定的字體大小做加減 )。


  2. 設定字體的顏色可以是顏色名稱或#RRGGBB表紅綠藍強度 ( 00 暗 ~ FF 亮 )。 #RRGGBB 所代表的是紅、綠、藍三原色,每一色由兩位十六進制的數值表示 ( 即十進制 0 ~ 255 )。 

    十六進制 : 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。


  3. 設定字體的字型會按照順序找出顯示的字型,若找不到則以系統預設字型顯示。

    ————————————————

    版權聲明:本文為CSDN博主「前端學習線路」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。

    原文鏈接:https://blog.csdn.net/webxuexi168/article/details/104411193

Layui中使用ECharts

seo達人

日?!边^坑“記錄

只記錄方法不說原理。。。



步驟:



ECharts下載

引入echarts.js

注意:這里好像只能用echarts.js,其它的不行,英文后面配置的時候要改東西(ps:我也不太不清楚)







修改echarts.js

打開echarts.js,在文件大概開始處添加如下代碼



window.layui && layui.define ? layui.define(function(exports){exports('echarts',factory(exports))}) :

如圖:







在文件內容末尾添加如下代碼:



exports.parseGeoJson = parseGeoJson;

return exports;

如圖:







 



layui添加配置并使用





ok了,和網上其它的相比,我這個應該是最簡單的配置了。


h5新增的表單標簽

seo達人

h5新增的表單標簽

原創weixin_46366721 最后發布于2020-02-29 12:27:39 閱讀數 13  收藏

展開

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

   <style>

       / 谷歌 /

       input::-webkit-input-placeholder{

           color:blue;

       }

       / 火狐19+ /

       input::-moz--input-placeholder{

           color:blue

       }

       / 火狐4-18 /

       input:-moz-input-placeholder{

           color:blue;

       }

       / ie高版本,ie+ /

       input::-ms-input-placeholder{

           color:blue;

       }

       / 歐鵬 /

       input::-o-input-placeholder{

           color:blue;

       }

       

   </style>

</head>

<body>

<form action="" novalidate>

    <input type="email">

    <input type="submit">

    <br>

    <input type="url">

    <input type="submit">

    <br>

    <input type="range">

    <input type="submit">

    <br>

    <input type="number">

    <input type="submit">

    <br>

    <input type="search">

    <input type="submit">

    <br>

    <input type="color">

    <input type="submit">

    <br>

   <input type="time">

   <br>

   <input type="month">

   <br>

   <input type="week">

   <br>

   <!-- <input type="datetime-local> -->

   <input type="date">

   <br>

   <!-- <input type="text" required>

   <input type="submit"> -->

    <br>

    <input type="number" step="3">

    <input type="submit">

    <br>

    <input type="text" name="aa" autocomplete="off">

    <input type="submit">

    <br>

    <input type="text"  value="" placeholder="請輸入您的姓名:"  autofocus>

    <input type="submit">

    <br>

    <input type="text" placeholder="請輸入您的手機號:" pattern="^1[3|5|8]\d{9}$">

    <input type="submit">

    <br>

    <input type="file" multiple>

    <br>

    <input type="url" list="lll">

    <datalist id="lll">

        <option value="http://www.baidu.com" label="百度"></option>

        <option value="http://www.sina.com" label="新浪"></option>

        </datalist>

    <input type="submit">

</form>

</body>

</html>



h5新增type類型:



Type=“email” 限制用戶必須輸入email類型

Type=“url” 輸入的網址前面必須加上http://

Type=“range” 產生一個滑動條表單

Type=“number” 必須輸入的是數字,調整數字大小(谷歌瀏覽器輸入字母不可以,但是可以輸入e;火狐可以輸入字母,不能提交)

Type=“search” 產生一個搜索意義的表單(火狐瀏覽器沒有叉號,谷歌有)

Type=“color” 生成一個顏色選擇的表單;

產生很大的兼容問題:



type=“time” 限制用戶必須輸入時間類型

type=“month” 限制用戶必須輸入月份類型(火狐瀏覽器不顯示)

type="week"限制用戶必須輸入周類型

type="datetime-local"選取本地時間

type=“date”

新增表單屬性:



required 檢測是否為空;



min:最小值



max:最大值



step:數值增加的幅度; 如果輸入的是step=“3”,搜索框輸入2,按住上鍵調的話,會是3,因為法定值:-3 0 3 6 9



autocomplete是否自動提示信息 on(默認值)off;和name="" 一起使用;



placeholder:文本框的提示信息(value的值得手動刪除,而placeholder不用刪除,可以直接輸入內容)



autofocus:自動聚焦,一個頁面只能存在一個聚焦(auto:自動)



pattern:后面的屬性值是一個正則表達式

//手機號驗證pattern=“^1[3][5]\d{9}$”



novalidate:取消驗證,放在form里面



multiple:選擇多個文件上傳



list:提示信息;必須結合datalist標簽,綁定datelist (谷歌提示value和label,而火狐只有label提示)



h5:新增的表單標簽



datalist

option

output:計算結果輸出、腳本的輸出


子類對象實例化全過程

seo達人

標準格式注意:

super()和this()調用語句不能同時在一個構造器中。

super()或this()調用語句只能作為構造器中的第一句出現。原因:

無論通過哪個構造器創建子類對象,需要保證先初始化父類。

目的是,當子類繼承父類后,“繼承”父類所有的屬性和方法,因此子類有必要知道父類如何為對象進行初始化。

從結果上看:繼承性

子類繼承父類以后,就獲取了父類中聲明的屬性或方法。

創建子類的對象,在堆空間中,就會加載所父類中聲明的屬性。

從過程上看:

當我們通過子類的構造器創建子類對象時,我們一定會直接或間接的調用其父類的構造器,進而調用父類的父類的構造器,…直到調用了java.lang.Object類中空參的構造器為止。正因為加載過所的父類的結構,所以才可以看到內存中父類中的結構,子類對象才可以考慮進行調用。

強調說明:

雖然創建子類對象時,調用了父類的構造器,但是自始至終就創建過一個對象,即為new的子類對象。


html內聯元素和塊級元素的基本概念及使用示例

前端達人

html標簽分為兩種,內聯元素和塊級元素,首先我們先了解一下內聯元素和塊級元素的概念:



塊級元素:一般是其它元素的容器,可容納內聯元素和其它塊級元素,塊級元素排斥其它元素與其位于同一行,可設置寬度(width)高度(height)屬性,正常流中的塊級元素會垂直擺放。常見塊狀元素為“div”



內聯元素(行內元素):內聯元素只能容納文本或者其他內聯元素,是塊級元素的后代,它允許其他內聯元素與其位于同一行,不能設置高度(height)和寬度(width)。常見內聯元素為“a”。



根據塊級元素的概念我們可以理解為塊級元素前后帶有換行符,也就相當于元素前后加了一個<br>標簽。我們可以把塊級元素想象成一個塊或一個矩形,所以塊級元素能設置高度寬度屬性



新建一個前端學習qun438905713,在群里大多數都是零基礎學習者,大家相互幫助,相互解答,并且還準備很多學習資料,歡迎零基礎的小伙伴來一起交流。

例:

css文件:

 



復制代碼



代碼如下:




div1{ 

width:200px; 

height:200px; 

background:#666 



div2{ 

width:200px; 

height:200px; 

background:#F00 

}





html文件: 

 



復制代碼



代碼如下:





<div id="div1"> 

div1 

塊級元素排斥其他元素與其位于同一行 

</div> 

<div id="div2"> 

div2 

塊級元素排斥其他元素與其位于同一行 

</div>





顯示效果: 



兩個div元素不位于同一行



 



根據內聯元素的概念,我們可以理解為內聯元素前后沒有換行符。我們可以把內聯元素想象成一條線,所以它不能設置height屬性和width屬性。



塊級元素(block element)標簽



address -地址

blockquote - 塊引用

center – 居中對齊

dir -目錄列表

div - 常用塊級容易,也是CSS layout的主要標簽

dl - 定義列表

fieldset - form控制組

form - 交互表單

h1 - 大標題

h2 - 副標題

h3 - 3級標題

h4 - 4級標題

h5 - 5級標題

h6 - 6級標題

hr - 水平分隔線

isindex - input prompt

menu - 菜單列表

noframes - frames可選內容,(對于不支持frame的瀏覽器顯示此區塊內容

noscript - 可選腳本內容(對于不支持script的瀏覽器顯示此內容)

ol - 排序表單

p - 段落

pre - 格式化文本

table - 表格

ul - 非排序列表



內聯元素(inline element)



a - 錨點

abbr - 縮寫

acronym - 首字

b - 粗體(不推薦)

bdo - bidi override

big - 大字體

br - 換行

cite - 引用

code - 計算機代碼(在引用源碼的時候需要)

dfn - 定義字段

em - 強調

font - 字體設定(不推薦)

i - 斜體

img - 圖片

input - 輸入框

kbd - 定義鍵盤文本

label - 表格標簽

q - 短引用

s - 中劃線

samp - 定義范例計算機代碼

select - 項目選擇

small - 小字體文本

span - 常用內聯容器,定義文本內區塊

strike - 中劃線

strong - 粗體強調

sub - 下標

sup - 上標

textarea - 多行文本輸入框

tt - 定義打字機文本

————————————————

版權聲明:本文為CSDN博主「前端學習線路」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/webxuexi168/article/details/104382660

CSS簡單實現圣杯布局和雙飛翼布局

seo達人

一、你能學到什么?

①如何使用css變量 ②實現圣杯布局和雙飛翼的簡單思路 ③了解浮動和margin的特性



css變量設置(兩個布局都有的部分)

:root{

    / 左邊欄寬度 /

    --lw:300px;

    /負左邊欄寬度/

    --lwf:-300px;

    / 右邊欄寬度 /

    --rw:400px;

    /負左邊欄寬度/

    --rwf:-400px;

    / 高度 /

    --height:300px;

}



二、圣杯布局的html和css代碼

html部分

  <div class="holyGrail">

    <div class="hg_main">main</div>

    <div class="hg_left">left</div>

    <div class="hg_right">right</div>

  </div>



css 實現對應的四個class

.holyGrail {

    height: var(--height);

    / 留出左右兩欄的布局 為了字體不被覆蓋/

    padding-left: var(--lw);

    padding-right: var(--rw);

}

.hg_main{

    width:100%;

    float: left;

    height: var(--height);

    background-color: blanchedalmond;

}

.hg_left{

    position: relative;

    left: var(--lwf);

    float: left;

    margin-left: -100%;

    width:var(--lw);

    height: var(--height);

    background-color: blueviolet;

}

.hg_right{

    float: left;

    margin-right: var(--rwf);

    width:var(--rw);

    height: var(--height);

    background-color: brown;

}





三、雙飛翼布局的html和css代碼

html部分

<div class="doubleWing">

    <div class="dw_main">

      <div class="dw_con">main</div>

    </div>

    <div class="dw_left">left</div>

    <div class="dw_right">right</div>

  </div>



css 實現對應的五個class

.doubleWing{

    padding-right: var(--rw);

}

.dw_left{

    float: left;

    margin-left: -100%;

    width:var(--lw);

    height: var(--height);

    background-color: blueviolet;

}

.dw_main{

    width:100%;

    float: left;

    height: var(--height);

    background-color: blanchedalmond;

}

.dw_con {

margin-left: var(--lw);

}

.dw_right{

    float: left;

    margin-right: var(--rwf);

    width:var(--rw);

    background-color: brown;

    height: var(--height); 

}



四、學會兩個布局的注意點

圣杯布局

在最外邊的類(holyGrail)左右要留出左欄和右欄的寬度(使用padding-left,padding-right)

中間的div.hg_main放在最上面,優先渲染,中間div自適應,width為100%

左中右欄的div都設置浮動,左欄通過margin-left:-100%移動到和中間的div同一起點,然后通過position: relative;

left: -(左欄的寬度);會移動到最外層div的左內邊距的區域(中間div的左邊)

右欄可以通過margin-right:-(右欄的寬度);移動到最外層div的右內邊距的區域(中間div的右邊)

雙飛翼布局

在中欄的div再加一個div,設置margin-left:左欄的寬度,這樣可以省略左欄的div使用postion和left的屬性移動

最外層的div可以不用預留左欄的位置了

五、兩個布局的對比的優缺點

布局 優點 缺點

圣杯 無多余dom 當中間的寬度小于左右的寬度時,結構混亂

雙飛翼 可以支持各種寬度,通用性強較強 需要多加一層dom

代碼下載地址

記得一定要自己去實現一下


日歷

鏈接

個人資料

藍藍設計的小編 http://m.skdbbs.com

存檔

92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线
国产精品爽爽ⅴa在线观看| 久久大香伊蕉在人线观看热2| 国产日韩欧美一区二区三区在线观看| 国内精品伊人久久| 久久97超碰色| 欧美一级本道电影免费专区| 麻豆精品99| 亚洲第一综合色| 亚洲精品第一页| 久久精品国产一区二区三区日韩| 少妇精品久久久一区二区| 偷拍亚洲欧洲综合| 黑人精品xxx一区一二区| 在线视频日本亚洲性| 天天操综合520| 欧美激情精品久久久久久| 亚洲1卡2卡3卡4卡乱码精品| 国产日韩亚洲欧美精品| 国产香蕉久久精品综合网| 日本高清成人vr专区| 日本亚洲一区二区| 欧美黄页免费| 欧美日本精品在线| 欧美日韩国产免费一区二区| 天天综合一区| 亚洲毛片在线看| 丝袜美腿综合| 国产一区二区三区在线视频| 欧美日韩国产综合视频在线| 99久久精品国产一区二区三区| 国产精品视频免费在线| 国产成人精品aa毛片| 欧洲一区在线电影| 国产精品麻豆久久久| 国产区二精品视| 免费不卡中文字幕在线| 成人18视频在线观看| 中文日韩在线视频| 国产精品久久天天影视| 精品一区二区男人吃奶| 国产精品视频一区二区三区不卡| 国产精品欧美日韩| 免费日韩成人| 国产精品国码视频| 天天射成人网| 日本福利在线| 欧美伊人久久久久久午夜久久久久| 中文字幕av一区中文字幕天堂| 成人福利片网站| 日韩精品中文字幕第1页| 一区二区三区视频在线观看| 成人在线视频www| 亚洲欧美一区二区久久| 久色乳综合思思在线视频| 99热精品在线| 欧美一区在线视频| 欧美最猛黑人xxxx黑人猛叫黄| 色影视在线观看| 亚洲国产三级在线| 羞羞色国产精品| 欧美挠脚心视频网站| 在线看国产日韩| 午夜成年人在线免费视频| 深夜福利亚洲导航| 热久久这里只有| 国产日本欧美一区二区| 一区二区三区波多野结衣在线观看| 日韩欧美ww| 亚洲成a人片| 91精品国产色综合久久不卡98| 最近2019中文字幕mv免费看| 97精品中文字幕| 国产亚洲一区二区三区在线播放| 高清精品视频| 久久精品男人天堂| 亚欧精品在线| 精品亚洲第一| 久久久久久久久久久9不雅视频| 777午夜精品福利在线观看| 久久亚洲午夜电影| 国产精品99久久久久久宅男| 亚洲免费在线视频| 国产乱色国产精品免费视频| 精品成人一区二区三区| av中文字幕电影在线看| 精品日韩美女的视频高清| 九色porny丨入口在线| 久久久久免费| 欧美一区不卡| 国产精品久久久久久久久免费| 国产精品成人a在线观看| 国产精欧美一区二区三区蓝颜男同| 国产精品久久久久毛片大屁完整版| 久久香蕉国产线看观看网| 在线精品观看| 国产亚洲欧美日韩美女| 4444kk亚洲人成电影在线| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产精品福利电影一区二区三区四区| 免费观看在线黄色网| 欧美日韩精品欧美日韩精品一综合| 日韩国产精品一区二区三区| 丰满的护士2在线观看高清| 在线黄色的网站| 日韩电视剧在线观看免费网站| 欧美一区二区免费视频| 国产精品一区二区视频| 日本欧洲国产一区二区| 欧美一区二区在线看| 日本中文字幕成人| 欧亚av在线| 国产精品亲子伦av一区二区三区| 成人欧美一区二区| 亚洲成人a级片| 97超碰最新| 国产一区日韩| 草莓视频一区二区三区| 91免费在线视频网站| 欧美日韩夜夜| 在线观看国产成人av片| 亚洲第一页自拍| 日韩免费视频一区二区| 天堂va在线高清一区| 天堂av中文在线观看| 成人一级片在线观看| 999精品视频一区二区三区| 日韩欧美aⅴ综合网站发布| 99久久人爽人人添人人澡| 色婷婷av一区二区三区大白胸| 8av国产精品爽爽ⅴa在线观看| 色狠狠一区二区三区香蕉| 色婷婷精品久久二区二区蜜臂av| 亚洲bt欧美bt日本bt| 美国av一区二区三区| 日本妇女一区| 91网免费观看| 亚洲精品一区二区三区蜜桃久| 久久精品国产亚洲blacked| 国产婷婷色一区二区三区四区| 久久久免费观看视频| 精品一区免费| 日本一区美女| 欧美国产一区二区三区| 日本一区免费观看| 欧美aa在线观看| 国产午夜精品一区二区三区四区| 精品国产三区在线| 欧美va亚洲va香蕉在线| 成人无号精品一区二区三区| 欧美激情在线狂野欧美精品| 国产精品一区二区无线| 欧美日韩精品二区| 日韩一级大片在线观看| 久久国产精品免费精品3p| 国产精品免费播放| 精品中文字幕一区二区| 岛国精品在线观看| 欧美一级生活片| 久久在精品线影院精品国产| 综合网中文字幕| 久久久女女女女999久久| f2c人成在线观看免费视频| 2020国产精品久久精品不卡| 精品国产18久久久久久二百|