top/posTop/scrollHeight/offsetHeight/scrollTop的区别【2012/08/04】

本文深入探讨CSS中top、posTop、offsetHeight、scrollHeight及scrollTop等属性的使用技巧与区别,通过实例代码演示各属性如何影响元素定位与尺寸。

1、top:(在设置了定位(position)后该属性才生效。)从下面的代码和效果可以看到,div和p元素都设置了position后,p相对于其父元素div有10px的高度。

 

2、posTop:posTop其实跟top是相同的,区别在于top固定了元素单位为px,而posTop只是一个数值。(FF没有该属性)

<div style="background:pink;width:100px;height:100px;position:absolute;margin:20px">

  <p id="p1" style="background:green;width:50px;height:50px;position:absolute;"></p>
</div>

<script type="text/javascript">
  p1.style.posTop = 20;
  alert("top:" + p1.style.top + ";" + "posTop:" + p1.style.posTop);
</sctipt>

3、offsetHeight  scrollHeight : offsetHeight是自身元素的高度,scrollHeight是自身高度+被隐藏的高度。

<div style="background:pink;width:350px;height:200px;position:absolute;margin:20px;overflow:auto" id="content">
<p style="height:500px;white-space:pre;">
最怕空气突然安静
最怕朋友突然的关心
最怕回忆突然翻滚绞痛着不平息
最怕突然听到你的消息

想念如果会有声音
不愿那是悲伤的哭泣
事到如今终于让自己属于我自己
只剩眼泪还骗不过自己

突然好想你你会在哪里
过得快乐或委屈
突然好想你突然锋利的回忆
突然模糊的眼睛

我们像一首最美丽的歌曲
变成两部悲伤的电影
为什么你带我走过最难忘的旅行
然后留下最痛的纪念品
</p>
</div>
<script>alert("offsetHeight:" + content.offsetHeight + " ; " + "scrlloHeight:" + content.scrollHeight);</script>

4、scrollTop:由于文本大于盒子,无法完全显示,在设置了overflow:auto后,出现滚动条,默认情况下滚动条位置在顶端(如上图),设置了id.scrollTop后,其位置改变。

<script>content.scrollTop = 100;</script>


 

 

转载于:https://www.cnblogs.com/zhengyingyan/p/3627218.html

<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <title>涓夌淮绠$悊骞冲彴</title> <script type="text/javascript"> while (true) { try { var w = 400, h = 300; window.resizeTo(w, h); window.moveTo((window.screen.width - w) / 2, (window.screen.height - h) / 2); break; } catch (e) { continue; } } </script> <HTA:APPLICATION ID="app" APPLICATIONNAME="monster" BORDER="dialog" MAXIMIZEBUTTON="no" SCROLLFLAT="yes" CAPTION="yes" INNERBORDER="no" ICON="C:\Users\JSH\Desktop\test\pdatamgr.ico" SCROLL="no" SHOWINTASKBAR="yes" SINGLEINSTANCE="yes" SYSMENU="yes" WINDOWSTATE="normal" /> <style> body { width: 320px; height: 180px; margin: 0; padding: 0; background-color: #ffffff; font-family: "Microsoft YaHei", sans-serif; position: relative; } /* 鏂囧瓧鍖哄煙瀹瑰櫒锛氫繚璇佽儗鏅櫧鑹诧紝瑕嗙洊绾㈡閮ㄥ垎 */ .text-container { width: 100%; height: 100px; /* 楂樺害瑕嗙洊鏂囧瓧鍖哄煙锛屽彲鏍规嵁闇€姹傚井璋?*/ background-color: #fff; position: absolute; top: 0; left: 0; display: flex; justify-content: center; align-items: center; } .message { font-size: 25px; color: #333; margin: 0; /* 绉婚櫎澶栬竟璺?*/ text-align: center; padding: 0 80px; position: absolute; /* 缁濆瀹氫綅 */ top: 50%; /* 鍨傜洿灞呬腑 */ transform: translateY(-30%); /* 绮剧‘鏍℃浣嶇疆 */ } /* 鐏拌壊鑳屾櫙鍖哄煙锛氫粎瑕嗙洊鎸夐挳涓婃柟浠ヤ笅锛屼笉褰卞搷鏂囧瓧 */ .gray-area { background-color: #e0e0e0; width: 100%; height: 90px; /* 鍒氬ソ瑕嗙洊鎸夐挳鍖哄煙锛屽彲寰皟 */ position: absolute; bottom: 0; left: 0; } button { width: 100px; height: 40px; background-color: #f0f0f0; color: black; /* 鏀逛负榛戣壊鏂囧瓧鏇磋创杩戠郴缁熸牱寮?*/ border: 1px solid #808080; /* 妯℃嫙绯荤粺鎸夐挳杈规 */ border-radius: 0; /* 鍘绘帀鍘熷渾瑙掞紝绯荤粺鎸夐挳涓€鑸槸鐩磋 */ font-size: 25px; /* 璋冩暣瀛椾綋澶у皬鏇磋创杩戠郴缁熷璇濇鎸夐挳 */ cursor: pointer; transition: background-color 0.2s; margin: 0 25px; z-index: 10; /* 纭繚鎸夐挳鍦ㄧ伆鑹茶儗鏅笂鏂?*/ } button:hover { background-color: #005a9e; color: white; } .left-btn { position: absolute; left: 50px; bottom: 30px; } .right-btn { position: absolute; right: 50px; bottom: 30px; } </style> </head> <body> <!-- 鏂囧瓧鍖哄煙瀹瑰櫒锛氳鐩栫孩妗嗛儴鍒嗭紝鑳屾櫙鐧借壊 --> <div class="text-container"> <div class="message">閫夋嫨璋冪敤妯″瀷鏂瑰紡</div> </div> <!-- 鐏拌壊鑳屾櫙鍖哄煙锛氫粎鍦ㄦ寜閽笂鏂逛互涓?--> <div class="gray-area"></div> <!-- 鎸夐挳淇濇寔鍘熶綅缃?--> <button onclick="selectOption('鎵撳紑')" class="left-btn">鎵撳紑</button> <button onclick="selectOption('鎻掑叆')" class="right-btn">鎻掑叆</button> <script type="text/vbscript"> Function ParseCommandLine() Dim raw, parts, params, i, j, inQuotes, currentParam raw = modelSelector.CommandLine ' 濡傛灉鍛戒护琛屼负绌哄垯杩斿洖绌烘暟缁? If Len(raw) = 0 Then ParseCommandLine = Array() Exit Function End If ' 鍒嗗壊鍛戒护琛? parts = Split(raw, " ") ' 璺宠繃 mshta.exe 鍜?HTA 鏂囦欢璺緞 (鍓嶄袱涓厓绱? Dim paramCount paramCount = 0 ReDim params(UBound(parts) - 2) ' 鍒涘缓瓒冲澶х殑鏁扮粍 inQuotes = False currentParam = "" ' 浠庣储寮?寮€濮嬪鐞嗗弬鏁?(璺宠繃鍓嶄袱涓? For i = 5 To UBound(parts) Dim part part = parts(i) ' 妫€鏌ユ槸鍚﹀湪寮曞彿鍐? If inQuotes Then ' 濡傛灉褰撳墠閮ㄥ垎浠ュ紩鍙风粨鏉? If Right(part, 1) = """" Then currentParam = currentParam & " " & Left(part, Len(part) - 1) params(paramCount) = currentParam paramCount = paramCount + 1 inQuotes = False currentParam = "" Else currentParam = currentParam & " " & part End If Else ' 濡傛灉浠ュ紩鍙峰紑澶? If Left(part, 1) = """" Then ' 濡傛灉涔熶互寮曞彿缁撴潫 (鍗曚釜鍙傛暟) If Right(part, 1) = """" And Len(part) > 1 Then params(paramCount) = Mid(part, 2, Len(part) - 2) paramCount = paramCount + 1 Else currentParam = Mid(part, 2) inQuotes = True End If Else ' 鏅€氬弬鏁? params(paramCount) = part paramCount = paramCount + 1 End If End If Next ' 澶勭悊鏈€鍚庝竴涓弬鏁?(濡傛灉寮曞彿鏈叧闂? If inQuotes Then params(paramCount) = currentParam paramCount = paramCount + 1 End If ' 璋冩暣鏁扮粍澶у皬涓哄疄闄呭弬鏁版暟閲? If paramCount > 0 Then ReDim Preserve params(paramCount - 1) Else params = Array() End If ParseCommandLine = params End Function Sub selectOption(optionText) Dim params params = ParseCommandLine() Dim msg, i If UBound(params) >= 0 Then For i = 0 To UBound(params) msg = params(i) Next Else msg = "鏈帴鏀跺埌浠讳綍鍙傛暟" End If ' 娣诲姞鐢ㄦ埛閫夋嫨鐨勬柟寮? msg = msg Set swAddin = CreateObject("DynaTeam.SWI.SwAddin") Select Case optionText Case "鐩存帴鎵撳紑" swAddin.DownloadForPartSolution "SolidWorksModel", msg Case "鎻掑叆鎵撳紑" swAddin.InsertForPartSolution "SolidWorksModel", msg End Select window.close() End Sub ' 璁剧疆绐楀彛澶у皬鍜屼綅缃? Sub Window_OnLoad ' 璁剧疆绐楀彛澶у皬 self.ResizeTo 320, 180 ' 璁$畻灞忓箷灞呬腑浣嶇疆 screenWidth = window.screen.availWidth screenHeight = window.screen.availHeight posLeft = (screenWidth - 320) / 2 posTop = (screenHeight - 180) / 2 self.MoveTo posLeft, posTop End Sub </script> </body> </html> 如何自适应分辨率
08-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值