|
|
请马上登录,朋友们都在花潮里等着你哦:)
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 马黑黑 于 2021-12-30 08:05 编辑
通过 CSS 的 position 绝对定位,我们很容易将一个网页可视对象(比如图片、区域)放置到浏览器浏览区域的左上角:
<style type="text/css">
.miniDiv {
width:100px;
height:40px;
background:#ffcc00;
padding:5px;
position:absolute;
left:0px;
top:0px;
}
</style>
<div class="miniDiv">定位测试</div>
这里,我们将 div 的左边、顶边起始位置分别设为0px,如此,div 的位置就在左上角。此法能成立,全赖 position 定义了 absolute 绝对定位的属性。
放在右上角呢?还有左下角和右下角,怎么设置 left 和 top 值?要知道,我们并不知道访客显示器的分辨率,用百分比如96%也许可以放到大概的位置,可是并不能将盒子的右边边缘与浏览器边缘相挨,再者,1024像素和1920像素的宽度计算起来会有一定差距。
幸好,在 CSS3 里,有一个 calc 函数用于计算 viewpoint 值,其中,viewpointwidth 为视窗宽度(单位 vw )、viewpointheight 为视窗高度(单位 vh),通过它的检测虽然我们不能得知具体的尺寸,但可以用运算结果来完成定位。
以 viewpointwidth 为例,1个 vw 等于视窗宽度的 1%,则可知 100vw 极为视窗宽度总长;vh 与此同理。
如此,需要盒子出现在右上角,我们用 calc 函数可以用下面的式子设定 div 的 left 值:
calc(100vw - 100px);
必须注意的是,calc 函数内的运算符左右都要有空格!
上面的式子中,为什么要减去100px呢?因为,div的宽度我们设定了100个像素。实际上,还应考虑浏览器纵向滚动条出现时的状况,这里暂且忽略它。
有童鞋可能会问:如果我们不会calc函数,能不能用百分百减去若干像素来设定left和top值?单独用百分比可以,减去px值则行不通,所以 CSS3 才会引入 calc 函数。
下面,在开头 CSS 代码基础上,修改 left 和 top 值,以便定位 div 到右上角、右下角、左下角:
右上角:
left:calc(100vw - 100px);
top: 10px;
右下角:
left:calc(100vw - 100px);
top:calc(100vh - 40px);
左下角:
left:10px;
top:calc(100vh - 40px);
|
评分
-
| 参与人数 3 | 威望 +130 |
金钱 +260 |
经验 +130 |
收起
理由
|
小辣椒
| + 50 |
+ 100 |
+ 50 |
很给力! |
加林森
| + 30 |
+ 60 |
+ 30 |
赞一个! |
红影
| + 50 |
+ 100 |
+ 50 |
赞一个! |
查看全部评分
|