建企業(yè)網(wǎng)站時為什么需要使用iframe自適應(yīng)高度呢?其實(shí)就是為了美觀,要不然iframe和窗口長短大小不一,看起來總是不那么舒服,自適應(yīng)高度對于用戶體驗(yàn)度的提升尤為重要。網(wǎng)上關(guān)于iframe高度自適應(yīng)的代碼有很多,但比較雜亂,有一些過于復(fù)雜,有一些存在明顯錯誤。緣由心生給出了一段修改后的精簡版本,感覺不錯,并簡單修正了其中一處Opera下的錯誤。
iframe框架自適應(yīng)高度
首先設(shè)置樣式:body{margin:0; padding:0;}
如果不設(shè)置body的margin和padding為0的話,頁面上下左右會出現(xiàn)空白。
html代碼如下: <iframe src="https://www.371jianzhan.com" id="myiframe" scrolling="no" onload="changeMyFrameHeight()"></iframe> js代碼也得跟著改: function changeMyFrameHeight(){ var ifm= document.getElementById("iframepage"); ifm.height=document.documentElement.clientHeight; } window.onresize=function(){ changeMyFrameHeight(); }
window.onresize的作用就是當(dāng)窗口大小改變的時候會觸發(fā)這個事件。
所以,建公司網(wǎng)站使用此方法可以完美的、真正的讓iframe自適應(yīng)高度了,試試看吧,并且兼容多種瀏覽器。
用JavaScript實(shí)現(xiàn)頁面滑動到指定位置加載動畫。
若頁面滾動到class名為group-pic的元素的位置時開始加載
原理: 1.獲取瀏覽器窗口的高度;
2.獲取頁面滾動的高度;
3.獲取頁面距離文檔(document)頂部的高度
offset().top具體指的是距哪里的高度呢?
一些獲寬高度的屬性:
網(wǎng)頁可見區(qū)域?qū)挘?document.body.clientWidth;
網(wǎng)頁可見區(qū)域高: document.body.clientHeight;
網(wǎng)頁可見區(qū)域?qū)挘?document.body.offsetWidth (包括邊線的寬);
網(wǎng)頁可見區(qū)域高: document.body.offsetHeight (包括邊線的寬);
網(wǎng)頁正文全文寬: document.body.scrollWidth;
網(wǎng)頁正文全文高: document.body.scrollHeight;
網(wǎng)頁被卷去的高: document.body.scrollTop;
網(wǎng)頁被卷去的左: document.body.scrollLeft;
網(wǎng)頁正文部分上: window.screenTop;
網(wǎng)頁正文部分左: window.screenLeft;
屏幕分辨率的高: window.screen.height;
屏幕分辨率的寬: window.screen.width;
屏幕可用工作區(qū)高度: window.screen.availHeight;
屏幕可用工作區(qū)寬度:window.screen.availWidth;
obj.offsetTop 指 obj 距離上方或上層控件的位置,整型,單位像素。
obj.offsetLeft 指 obj 距離左方或上層控件的位置,整型,單位像素。
obj.offsetWidth 指 obj 控件自身的寬度,整型,單位像素。
obj.offsetHeight 指 obj 控件自身的高度,整型,單位像素。
1.offsetTop : 當(dāng)前對象到其上級層頂部的距離.
不能對其進(jìn)行賦值.設(shè)置對象到頁面頂部的距離請用style.top屬性.
2.offsetLeft : 當(dāng)前對象到其上級層左邊的距離.
不能對其進(jìn)行賦值.設(shè)置對象到頁面左部的距離請用style.left屬性.
3.offsetWidth : 當(dāng)前對象的寬度.
與style.width屬性的區(qū)別在于:如對象的寬度設(shè)定值為百分比寬度,則無論頁面變大還是變小,style.width都返回此百分比,而offsetWidth則返回在不同頁面中對象的寬度值而不是百分比值
4.offsetHeight : 與style.height屬性的區(qū)別在于:如對象的寬度設(shè)定值為百分比高度,則無論頁面變大還是變小,style.height都返回此百分比,而offsetHeight則返回在不同頁面中對象的高度值而不是百分比值
言
由于前端所設(shè)計的領(lǐng)域太多,每篇文章所能講述的知識點(diǎn)太多,對于讀者來說不太好消化,因此以后基本是采用一篇文章一個知識點(diǎn)來寫作。
今天這篇文章主要講解css中a標(biāo)簽的高度和寬度問題。
css
問題描述
在采用div+css的方式布局頁面時,對于超鏈接a標(biāo)簽,無法設(shè)置其高度和寬度,即使對其設(shè)置了width和height屬性,也不會生效。
我們通過如下例子來看看。
給a標(biāo)簽設(shè)置了如下css屬性。
css屬性
但是從下圖可以看出,a標(biāo)簽的高度和寬度沒有發(fā)生變化,仍然是122px*22px。
實(shí)際效果
問題原因
為什么會出現(xiàn)這個情況呢?
因?yàn)閍標(biāo)簽屬于行內(nèi)元素,行內(nèi)元素是無法直接設(shè)置高度和寬度的。
遇到這個問題,我們該怎么解決呢,主要有以下幾個方法。
解決方法1-設(shè)置塊級元素
既然行內(nèi)元素?zé)o法設(shè)置高度和寬度,那么我們將其設(shè)置為塊級元素呢?
我們對a標(biāo)簽設(shè)置以下的樣式。
設(shè)置display:block
我們可以看出a標(biāo)簽的高度和寬度發(fā)生了變化,而且在設(shè)置為塊級元素后,占據(jù)了一整行的位置。
高度發(fā)生變化
解決方法2-設(shè)置浮動
通過將a標(biāo)簽設(shè)置為浮動狀態(tài),同樣可以改變其高度和寬度。
我們給a標(biāo)簽設(shè)置以下css樣式。
設(shè)置為浮動元素
我們可以看出a標(biāo)簽的高度和寬度發(fā)生了變化,并且其占據(jù)的寬度和設(shè)置的width屬性一樣,與方法1呈現(xiàn)的不一樣。
改為浮動元素
方法3-設(shè)置padding屬性
在設(shè)置padding屬性的時候,不能直接改變a標(biāo)簽的高度和寬度,實(shí)際是一種模擬的狀態(tài)。
而且需要注意的是在設(shè)置padding-top和padding-bottom時是不生效的,即使從控制臺看元素顯示占據(jù)了空間,但不會影響頁面的布局。因此在設(shè)置padding屬性時,實(shí)際只會影響到a標(biāo)簽的寬度。
我們給a標(biāo)簽設(shè)置以下padding屬性。
設(shè)置padding屬性
我們可以看出a標(biāo)簽占據(jù)的高度和寬度發(fā)生了變化,但是實(shí)際只是寬度占據(jù)的空間發(fā)生變化,高度不變。
設(shè)置padding屬性
結(jié)束語
今天這個簡單的知識點(diǎn):設(shè)置a標(biāo)簽的高度和寬度,大家都學(xué)會了嗎?
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。