Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲免费黄色网,一区二区三区高清视频在线观看,国产97在线视频

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          Vue進(jìn)階(幺肆叁):應(yīng)用絕對定位定位布局及其注意事項(xiàng)

          在《Vue進(jìn)階(幺肆貳):CSS-靜態(tài)定位,相對定位,絕對定位,固定定位的用法和區(qū)別詳解》一文中,講解了CSS常用的幾種定位方式。此篇博文主要講解如何應(yīng)用絕對定位實(shí)現(xiàn)完美布局,及應(yīng)用注意事項(xiàng)。

          在布局過程中我們經(jīng)常用到絕對定位,很多初學(xué)者在一開始用絕對定位經(jīng)常會(huì)達(dá)不到預(yù)期的效果,因?yàn)樗鼈兺鶗?huì)忽略使用絕對定位的兩個(gè)條件。

          什么?使用絕對定位還要條件?

          當(dāng)然要啦!代碼又沒有腦子,沒法自己思考應(yīng)該定位到哪里。為了使用的時(shí)候方便,使用絕對定位的時(shí)候要滿足兩個(gè)條件。

          在講這兩個(gè)條件的之前,我們要先提一個(gè)概念——標(biāo)準(zhǔn)流

          什么是標(biāo)準(zhǔn)流呢?

          標(biāo)準(zhǔn)流normal flow),也被稱為文檔流,是指在不借助任何特殊的css排列規(guī)則元素。

          排布規(guī)則

          浮動(dòng)和定位(absolute,fixed)會(huì)脫離標(biāo)準(zhǔn)流,也就是不受這套規(guī)則的約束。

          標(biāo)準(zhǔn)流其實(shí)就是一個(gè)默認(rèn)的排布規(guī)則。下面介紹一下標(biāo)準(zhǔn)流元素的一些排布規(guī)則:

          標(biāo)準(zhǔn)流中的塊級元素(block)

          • 塊級元素獨(dú)占一行,垂直方向上從上往下進(jìn)行排列;
          • 塊級元素可設(shè)寬高;
          • 塊級元素不設(shè)寬度的情況下,默認(rèn)寬度為其父級的100%;

          標(biāo)準(zhǔn)流中的行內(nèi)元素(inline)

          • 行內(nèi)元素將與其他行內(nèi)元素從左到右進(jìn)行排列;
          • 行內(nèi)元素不可設(shè)置寬高,由其內(nèi)容決定其寬高;

          特殊的行內(nèi)元素

          inputimg是行內(nèi)元素,但是可以設(shè)置寬高;

          標(biāo)準(zhǔn)流中的嵌套規(guī)則

          • 塊級元素可以嵌套行內(nèi)元素,反之不能;
          • ul(無序列表),ol(有序列表)只能嵌套lili可以嵌套任何元素;
          • dl(定義列表)只能嵌套dt(標(biāo)題),dd(標(biāo)題解釋)元素】;
          • textarea里只能嵌套文本;
          • p,h1~h6只能嵌套文本和行內(nèi)元素;
          • select(表單控件)只能嵌套option
          • a標(biāo)簽不可以嵌套交互型的標(biāo)簽;

          外邊距合并問題

          標(biāo)準(zhǔn)流中上下相鄰的兩個(gè)元素的margin-bottommargin-top會(huì)發(fā)生重疊情況。

          看了上面的一些排布規(guī)則,大家是不是就了解什么叫標(biāo)準(zhǔn)流啦?

          舉個(gè)例子,就拿float來說,沒有浮動(dòng)的盒子是一個(gè)標(biāo)準(zhǔn)流,而浮動(dòng)的盒子是一個(gè)非標(biāo)準(zhǔn)流 ,因?yàn)?span style="color: #1A74FF; --tt-darkmode-color: #1A74FF;">float更改了它默認(rèn)的排布規(guī)則。

          而我們要用到的絕對定位,則是對離自己最近的那個(gè)非標(biāo)準(zhǔn)流盒子而言的。 (對一個(gè)盒子使用了浮動(dòng),相對定位,或者絕對定位,那么這個(gè)盒子就變成了一個(gè)非標(biāo)準(zhǔn)流的盒子了。)

          好了,接下來就該將使用絕對定位要滿足的兩個(gè)條件了。

          當(dāng)我們要使用絕對定位的時(shí)候,必須要有兩個(gè)條件:

          • 必須給父元素加定位屬性,一般建議使用 position:relative(即:給父元素設(shè)為相對定位);
          • 給子元素,加絕對定位position:absolute(給子元素設(shè)置為絕對定位); 同時(shí)加方向?qū)傩裕?span style="color: #1A74FF; --tt-darkmode-color: #1A74FF;">top ,left,rigth,bottom)

          為什么要滿足這兩個(gè)條件呢?

          因?yàn)榻^對定位是以父元素為基準(zhǔn)點(diǎn),進(jìn)行定位。如果沒有父元素,或者父元素沒有設(shè)置position:relative屬性它就會(huì)以最近的非標(biāo)準(zhǔn)流盒子為基準(zhǔn)點(diǎn)進(jìn)行定位。

          絕對定位會(huì)使當(dāng)前元素脫離文檔流,即變成了非標(biāo)準(zhǔn)流。這是什么意思呢?

          其實(shí),當(dāng)它為標(biāo)準(zhǔn)流的時(shí)候,它默認(rèn)在原位,當(dāng)它脫離標(biāo)準(zhǔn)流的時(shí)候,他就浮動(dòng)起來了,不再占據(jù)原來的位置了。

          這時(shí)候你要是想定位,如果不給它的父元素設(shè)置為相對定位(即讓父元素變?yōu)榉菢?biāo)準(zhǔn)流),或者它沒有父元素,那么它就會(huì)以節(jié)點(diǎn)的頂部為基準(zhǔn)定位,以它為基準(zhǔn)定位。

          如果我們滿足了這兩個(gè)條件,它就會(huì)以父元素為基準(zhǔn)進(jìn)行絕對定位。這樣定位的話,會(huì)省去超多麻煩。

          下面來看一下具體例子:

          <!DOCTYPE html>
          <html>
          <head>
          <meta charset="utf-8"> 
          <title>菜鳥教程(runoob.com)</title> 
          <style>
          	h3{
          		position:absolute;
          		left:50px;
          		top:50px;
          		color:#FFF;
          	}
          	.div_test{
              width:500px;
              height:200px;
              background-color:#000;	
          	}
          	.div_test2{
              width:300px;
              height:100px;
              float:right;
              background-color:blue;
              //position:relative;//相對定位
          	}
          </style>
          </head>
           
          <body>
          <div class="div_test">	
          	<div class="div_test2">
          		<h3>這是一個(gè)絕對定位了的標(biāo)題</h3>
          	</div>
          </div>
          </body>
          </html>

          上面的代碼定義了一個(gè)大div,其中包含一個(gè)小div,小div中有一段用了絕對定位的話。按照我們的代碼,我們是想要這段文字根據(jù)div_test2來定位的,但是運(yùn)行一下,如圖:

          我們可以看到,這段文字根據(jù)節(jié)點(diǎn)頂部作為基準(zhǔn)定位。這是因?yàn)樗母冈貨]有設(shè)置相對定位。

          現(xiàn)在給它的父元素設(shè)置一下相對定位。

          運(yùn)行結(jié)果如下:

          家應(yīng)該都知道,網(wǎng)站的布局對一個(gè)網(wǎng)站來說至關(guān)重要, CSS 作為新手,要做好一個(gè)網(wǎng)站,CSS 這關(guān)肯定得先過,今天教大家 CSS 的定位(Position)~

          position 屬性指定了元素的定位類型。position 屬性有如下五個(gè)值:

          static

          relative

          fixed

          absolute

          sticky

          元素可以使用的頂部,底部,左側(cè)和右側(cè)屬性定位。然而,這些屬性無法工作,除非是先設(shè)定position屬性。他們也有不同的工作方式,這取決于定位方法。

          static 定位

          HTML元素的默認(rèn)值,即沒有定位,元素出現(xiàn)在正常的流中。靜態(tài)定位的元素不會(huì)受到 top, bottom, left, right 影響。

          示例代碼

          div.static {

          position: static;

          border: 3px solid #73AD21;

          }

          fixed 定位

          元素的位置相對于瀏覽器窗口是固定位置,即使窗口是滾動(dòng)的它也不會(huì)移動(dòng):

          示例代碼

          p.pos_fixed

          {

          position:fixed;

          top:30px;

          right:5px;

          }

          注意: Fixed 定位在 IE7 和 IE8 下需要描述 !DOCTYPE 才能支持。Fixed 定位使元素的位置與文檔流無關(guān),因此不占據(jù)空間。Fixed 定位的元素和其他元素重疊。

          relative 定位

          相對定位元素的定位是相對其正常位置。

          h2.pos_left

          {

          position:relative;

          left:-20px;

          }

          h2.pos_right

          {

          position:relative;

          left:20px;

          }

          移動(dòng)相對定位的元素,但它原本所占的空間不會(huì)改變。

          h2.pos_top

          {

          position:relative;

          top:-50px;

          }

          相對定位元素經(jīng)常被用來作為絕對定位元素的容器塊。

          absolute 定位

          絕對定位的元素的位置相對于最近的已定位父元素,如果元素沒有已定位的父元素,那么它的位置相對于<html>:

          h2

          {

          position:absolute;

          left:100px;

          top:150px;

          }

          absolute 定位使元素的位置與文檔流無關(guān),因此不占據(jù)空間。absolute 定位的元素和其他元素重疊。

          sticky 定位

          sticky 英文字面意思是粘,粘貼,所以可以把它稱之為粘性定位position: sticky; 基于用戶的滾動(dòng)位置來定位。

          粘性定位的元素是依賴于用戶的滾動(dòng),在 position:relativeposition:fixed 定位之間切換。

          它的行為就像 position:relative; 而當(dāng)頁面滾動(dòng)超出目標(biāo)區(qū)域時(shí),它的表現(xiàn)就像 position:fixed;,它會(huì)固定在目標(biāo)位置。元素定位表現(xiàn)為在跨越特定閾值前為相對定位,之后為固定定位。

          這個(gè)特定閾值指的是 top, right, bottom 或 left 之一,換言之,指定 top, right, bottom 或 left 四個(gè)閾值其中之一,才可使粘性定位生效。否則其行為與相對定位相同。

          注意: Internet Explorer, Edge 15 及更早 IE 版本不支持 sticky 定位。 Safari 需要使用 -webkit- prefix (查看以下實(shí)例)。

          div.sticky {

          position: -webkit-sticky; /* Safari */

          position: sticky;

          top: 0;

          background-color: green;

          border: 2px solid #4CAF50;

          }

          重疊的元素

          元素的定位與文檔流無關(guān),所以它們可以覆蓋頁面上的其它元素。

          z-index屬性指定了一個(gè)元素的堆疊順序(哪個(gè)元素應(yīng)該放在前面,或后面)

          一個(gè)元素可以有正數(shù)或負(fù)數(shù)的堆疊順序:

          img

          {

          position:absolute;

          left:0px;

          top:0px;

          z-index:-1;

          }

          具有更高堆疊順序的元素總是在較低的堆疊順序元素的前面。

          注意: 如果兩個(gè)定位元素重疊,沒有指定z - index,最后定位在HTML代碼中的元素將被顯示在最前面。

          有什么疑問可以私信小編:"前端"

          完成了頁面的布局之后,我們需要讓頁面動(dòng)起來,一般來說頭部信息需要添加好幾個(gè)才能完成要求的接口請求。

          所以我們在之前的基礎(chǔ)要進(jìn)行鍵值對輸入的新增功能。

          由于技術(shù)的原因,刪除的操作沒寫出來。

          所以最終實(shí)現(xiàn)了類似如下圖的內(nèi)容:

          新增

          把加號移動(dòng)到了之前的操作位置,下面顯示的是序列ID。所以會(huì)有諸多不便,但是刪除指定行的操作還是等后續(xù)能力上升后再補(bǔ)全好了。

          下面來看一下新增部分的js代碼$("#head_data_add").click(function () {
           var tr = "<tr>" + '<td>' + flag + '</td>'
           + '<td><input type="text" placeholder="請輸入請求鍵" style="border-radius: 5px"></td>'
           + '<td><input type="text" placeholder="請輸入請求值" style="border-radius: 5px"></td>'
           + '<td><input type="text" placeholder="請輸入注釋" style="border-radius: 5px"></td>'
           + '</tr>';
           $("#head_data").append(tr);
           flag++;
           });
          

          雖然就這么簡單的幾行,但是由于根本沒有系統(tǒng)的學(xué)習(xí)過js,所以寫的很痛苦。

          首先是定義了一個(gè)變量tr,它是通過字符串的拼接組合而成,可以看到和我們在html靜態(tài)頁面中寫的列表的一行內(nèi)容一樣,唯一不同的是使用flag來指明了序號。因?yàn)榈谝恍惺枪潭ǖ模远xflag的時(shí)候是從2開始。在每次操作的最后都會(huì)進(jìn)行flag++的操作,完成計(jì)數(shù)+1。

          html頁面

          從IDE左側(cè)的標(biāo)示可以看出修改的部分。這次為table增加了一個(gè)id為head_data

          為圖標(biāo)增加了一個(gè)a標(biāo)簽,并且指向的連接是javascript:void(0)

          使用javascript:void(0)點(diǎn)擊后html頁面不會(huì)有任何變化,如果使用#會(huì)刷新一次頁面。并且為它增加了一個(gè)id為head_data_add。

          使用id是為了更方便的在js代碼中定位到對應(yīng)元素。

          通過幾步簡單的操作就完成了添加一行鍵值對輸入行的操作了。

          效果

          下面數(shù)據(jù)部分同理。

          效果

          其他部分自行查看github上的代碼吧~~

          https://github.com/zx490336534/Zxapitest

          歡迎關(guān)注我的公眾號:zx94_11


          主站蜘蛛池模板: 久久蜜桃精品一区二区三区| 99久久精品午夜一区二区| 久久国产精品最新一区| 国精产品一区一区三区有限公司| 丰满岳乱妇一区二区三区| 精品福利视频一区二区三区| 真实国产乱子伦精品一区二区三区| 国产精品免费视频一区| 无码一区18禁3D| 亚洲一区二区三区高清视频| 中文字幕一区二区三区精华液 | 国产在线一区二区三区| 波多野结衣电影区一区二区三区| 日韩一区二区视频在线观看| 亚洲AV成人精品一区二区三区| 亚洲a∨无码一区二区| 亚洲狠狠狠一区二区三区| 国产激情无码一区二区app| 91麻豆精品国产自产在线观看一区 | 国产亚洲一区二区精品| 日本精品少妇一区二区三区| 国产在线视频一区| 日本一区二区在线免费观看| 精品国产高清自在线一区二区三区| 波多野结衣高清一区二区三区 | 中文字幕日韩精品一区二区三区| 国产熟女一区二区三区四区五区 | 久久精品国产亚洲一区二区| 日韩一本之道一区中文字幕| 精品国产一区二区三区免费 | 精品视频一区二区三区| 久久久久久一区国产精品| 精品视频一区二区三区免费| 久久国产视频一区| 亚洲一区二区无码偷拍| 国产一区二区视频免费| 熟女少妇精品一区二区| 精品人伦一区二区三区潘金莲| 亚洲综合一区无码精品| 日本视频一区二区三区 | 在线视频国产一区|