java box边界_将边框放在div内部而不是边缘

讨论了如何使用CSS的box-shadow和outline属性创建内嵌边框,以及在不改变元素尺寸的情况下添加边框的方法。提到了box-shadow的inset选项和outline属性作为解决方案,同时考虑了跨浏览器兼容性,特别是针对IE的支持。
摘要由CSDN通过智能技术生成

我有一个

元素,我想在它上面加一个边框。 我知道我可以写style="border: 1px solid black" ,但这会增加2px到div的任何一侧,这不是我想要的。

我宁愿让这个边界距离div的边缘是-1px。 div本身是100px x 100px,如果我添加一个边框,那么我必须做一些数学来使边框出现。

有什么方法可以让边框出现,并确保框仍然是100px(包括边框)?

#1楼

你也可以像这样使用box-shadow:

div{

-webkit-box-shadow:inset 0px 0px 0px 10px #f00;

-moz-box-shadow:inset 0px 0px 0px 10px #f00;

box-shadow:inset 0px 0px 0px 10px #f00;

}

这仅适用于现代浏览器。 例如:没有IE 8支持。 有关详细信息, 请参阅caniuse.com(框阴影功能) 。

#2楼

我知道这有点旧,但由于关键词“border inside”让我直接来到这里,我想分享一些可能值得一提的发现。 当我在悬停状态下添加边框时,我得到了OP正在谈论的效果。 边框将像素广告到框的尺寸,使其变得有弹性。 还有两种方法可以解决这个问题,这也适用于IE7。

1)边框已经附加到元素上,只需更改颜色即可。 这种方式已经包含了数学。

div {

width:100px;

height:100px;

background-color: #aaa;

border: 2px solid #aaa; /* notice the solid */

}

div:hover {

border: 2px dashed #666;

}

2)以负余量补偿边界。 这仍然会添加额外的像素,但元素的定位不会跳跃

div {

width:100px;

height:100px;

background-color: #aaa;

}

div:hover {

margin: -2px;

border: 2px dashed #333;

}

#3楼

最好的跨浏览器解决方案(主要用于IE支持)如@Steve所说的是在宽度和高度上设置一个div为98px而不是在它周围添加1px的边框,或者你可以为div 100x100 px制作背景图像并在其上绘制边框。

#4楼

可能是迟来的回答,但我想与我的发现分享。 我找到了两个新方法来解决这个问题,我在答案中没有找到:

内部边框通过box-shadow css属性

是的,box-shadow用于向元素添加框阴影。 但是你可以指定inset阴影,它看起来像一个内边框而不是阴影。 您只需要将水平和垂直阴影设置为0px ,并将box-shadow的“ spread ”属性设置为您想要的边框宽度。 因此,对于10px的“内部”边界,您将编写以下内容:

div{

width:100px;

height:100px;

background-color:yellow;

box-shadow:0px 0px 0px 10px black inset;

margin-bottom:20px;

}

这是jsFiddle示例,说明了box-shadow边框和“普通”边框之间的区别。 这样你的边框和盒子宽度总共100px,包括边框。

关于box-shadow的更多信息: 这里

通过大纲css属性边界

这是另一种方法,但这种方式边框将在框外。 这是一个例子 。 如下例所示,您可以使用css outline属性来设置不影响元素宽度和高度的边框。 这样,边框宽度不会添加到元素的宽度。

div{

width:100px;

height:100px;

background-color:yellow;

outline:10px solid black;

}

更多关于大纲: 这里

#5楼

雅虎 这确实是可能的。 我找到了。

对于底边:

div {box-shadow: 0px -3px 0px red inset; }

对于顶级边框:

div {box-shadow: 0px 3px 0px red inset; }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值