div背景透明内容不透明与0.5PX边框兼容设置

1、问题:设置 border-width:0.5px;  并兼容安卓和苹果移动端。

   兼容:苹果IOS的 safari 支持浮点数边框,安卓浏览器不支持,会四舍五入到1px。不同浏览器效果额不同

   解决方案:设置2层嵌套的div,最外层的用来定位,保障我们设置的内容不会脱离原先的文档流。

         里层设置两个div,一个用来书写内容,一个用来专门设置边框

HTML代码 :

<!-- position_box用来定位,控制该区域在原文档流中的位置 -->
<div class="position_box">
     <!--填充内容,不用position_box是因为如果要设置圆角+背景色,就有些麻烦,border也不能用,被缩放了-->
    <div class="content">边框为0.5px</div>
    <!-- 专属用来设置0.5px的边框,圆角,以及背景色 -->
    <div class="border"></div>
</div>

CSS代码:

/* 定位 */
.position_box{
    width: 200px;
    height: 200px;
    position: relative;
}
/* 给内容定位,提升层级 */
.content{
    position: relative;
    z-index: 2;
    padding: 10px;
}
/* 边框设置,圆角,背景色 */
.border{
    /* 边框颜色,背景色,圆角  */
    background-color: aquamarine;
    border: 1px solid red;
    border-radius:10px;
    /* 缩放比例 */
    -webkit-transform: scale(0.5);
    transform: scale(0.5);
    /* 强制拉伸 */
    position: absolute;
    top: -50%;
    left: -50%;
    right: -50%;
    bottom: -50%;
}

2、问题:如何设置一个div的背景色透明度,但使其内容不透明

   原理:这个解决方案其实就跟上面的解决方案一样了,将背景色和内容分离在两个不同的div(容器)中,再用外层一个div(容器)包裹起来,然后分别做各自的设置,就可以了

   代码: 同上面的代码,直接修改上面设置 border 的css属性即可,或者直接加 opacity: 0.75; 。

如果您还有其他的更加巧妙的方法,欢迎您留言,先行表示感谢

参考链接:http://www.zhangyunling.com/543.html

时间: 2024-10-17 10:00:05

div背景透明内容不透明与0.5PX边框兼容设置的相关文章

兼容IE、Firefox的背景半透明内容不透明设置

首先要说明的是背景是内容的祖先元素.如果是兄弟节点那就没有必要记录这篇文章了. 记录一下,知其然也知其所以然. IE8-特点: 1.不支持"opcity:0.5;"这种写法,只支持"filter:alpha(opacity=50)". 2.如果背景元素拥有css属性设置了z-index的值(除默认值auto外),则内容会随着背景元素一起半透明 3.如果背景元素的内容元素本身或其祖先节点(这些祖先节点是背景元素的后代节点)没有设置css定位属性position:rel

移动端半像素 0.5PX 边框实现。

1 /*半像素*/ 2 .halfpxline_after, .halfpxline_before { 3 position: relative; 4 } 5 6 .halfpxline_after:after, .halfpxline_before:before { 7 content: ''; 8 display: block; 9 position: absolute; 10 left: 0; 11 right: 0; 12 height: 1px; 13 background-color

通过IE私有滤镜让IE6 7 8支持背景透明,内容不透明效果。

CSS3已经支持背景rgba的rgba透明度,这一方法可以避免元素内容也随背景一起变透明(详情请阅http://www.cssha.com/css3-new-knowledge-student).但是这一属性在低于IE9的版本中却不被支持,我们可以通过IE私有滤镜来实现背景透明效果.rgba参数格式:(red,green.,blue,alpha),alpha值0-1.ie滤镜参数#3363370b,前两位为16进制透明度,比如说值是上面用到的0.2,那么就是0.2×255=51,再转换成16进制

移动端页面0.5px border的实现

移动端上经常发现1px边框异常的粗,因此,决定用伪类配合css3来实现0.5px边框 代码如下: 1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"&g

设置div背景透明的CSS样式

div背景透明样式: 样式代码: .alert{filter:alpha(opacity=100); /* IE */ -moz-opacity:1.0; /* Moz + FF */ opacity: 1.0; height:300px; width:500px; background:#ccc; left:50%; top:50%;margin-top:-150px;margin-left:-250px;position:absolute;z-index:99; text-align:cen

div半透明背景,文字不透明

1 background: rgba(255, 255, 255, 0.8) !important; /* IE无效,FF有效 */ 2 3 background: #fff; 4 5 filter: alpha(opacity=60); 在需要不透明文字的元素样式上添加样式:position:relative; div半透明背景,文字不透明

CSS让div背景透明

div背景透明样式: 样式代码: .alert{filter:alpha(opacity=100); /* IE */ -moz-opacity:1.0; /* Moz + FF */ opacity: 1.0; height:300px; width:500px; background:#ccc; left:50%; top:50%;margin-top:-150px;margin-left:-250px;position:absolute;z-index:99; text-align:cen

关于实现背景透明文字不透明的解决方案

最近在做项目的时候遇到实现背景透明文字不透明的解决方法要求的兼容性是ie8+ 1.大家豆知道background:rgba(),可以实现背景透明文字不透明但是ie8 不支持background:rgba(); 如果不考虑ie 8 我们可以直接rgba就解决了 2.如果考虑ie8 我的做法是,先说我的做法,再说别人的做法. 3.我的做法是按照设计稿切切一张1px*1px的png透明图片然后background:url(toumingdu.png);这样就会平铺过去,可以很快实现背景透明文字不透明,

背景色透明,内容不透明,适用所有浏览器(转)

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml"> 4 <head> 5 <meta http-equiv=&quo