css中关于字体颜色的设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了css中关于字体颜色的设置相关的知识,希望对你有一定的参考价值。

首先我写了两个div:
<div id=“1”>
<div id="2">some text</div>

</div>
部分css如下:
#1{
position:fixed;
left:0;
top:0;
bottom:0px;
right:0px;
background-color:#000;
opacity:0.15;
filter:alpha(opacity=15);
z-index:5000;

#2{
position:absolute;
left:50%;
top:50%;
margin-left:-196px;
margin-top:-203px;
padding:0;
border-style:solid;
border-width:1px;
border-color:#9999FF;
width:392px;
height:406px;
background-color:#EEEEEE;
color:#000000;
z-index:5001;

问题:文字显示的颜色不对,太淡,看起来的效果好像是,id为1的图层在上面,文字从下面透过来似的。

#1 中的

background-color:#000;
opacity:0.15;

这两行 换成下面两行,如果不用兼容ie的话,就使用下面第一行就行了。

background-color: rgba(0,0,0,.15);
filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr='#00000000', EndColorStr='#00000000')\9;追问

为什么我的写法是错误的,不能显示出我要的效果。

追答

父元素设置了opacity属性,子元素的不透明度即为父元素的opacity 乘以自身的opacity值,所以,文字都会变得透明,即使设置了子元素的opacity = 1也是没有用的。

参考技术A

div1有透明度,div2里面的字体会继承这个透明度,所以字体颜色淡。

解决:

    你要把div2从div1里面移出来,不成为div的子元素,然后用定位放到div1上面

    不移出来,div1不设置透明度,改用半透明的png图片做背景,低版本ie不支持png背景透明,你需要另外找点小技巧使其透明

    div1背景色用css3的RGBA颜色来设置,这个RGBA的透明度子级不会继承,可惜ie低版本不支持

参考技术B css规范中没有font-color这个属性,所以设置该属性是不会对网页起作用的,你可以去w3school这个网站多看看,对初学css的人很有用 参考技术C 先不看你括弧里的css。。id不能以单独数字命名。。追问

请抓住重点,这些代码是我现写的,只是为了表达我的意思,id改成什么无所谓。

css中关于position属性的探究(原创)

关于position属性的设置,头脑中一直觉得不是很清楚,所以借助这次机会单独自己测试了一下,记作学习笔记。
 
首先,css的position属性包含下面四种设置情况:
  1. static:默认属性。指定元素按照常规的文档内容刘(从左到右,从上到下)进行定位。
  2. absolute:独立定位,它的定位要么是相对于最近的定位祖先元素,要么是相对于文档本身。
  3. fixed:该值指定元素是相对于浏览器窗口进行定位的。不会随着文档其他部分而滚动。
  4. relative:元素按照常规文档流进行布局,它的定位相对于文档流中的位置进行调整。
上面是定义,下面开始我的测试:
 
演示代码:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
  <style>
    *{
      margin:0;
      padding:0;
    }
    #father{
      width:300px;
      height:300px;
      background:black;
    }
    #child1{
      width:100px;
      height:100px;
      background:blue;
    }
    #child2{
      width:100px;
      height:100px;
      background:yellow;
    }
    #cousin{
      width:100px;
      height:100px;
      background:green;
    }
  </style>
</head>
<body>
<div id="father">
  <div id="child1">child1</div>
  <div id="child2">child2</div>
</div>
<div id="cousin">cousin</div>
</body>
</html>
 
上述代码在浏览器中展示的样式:
技术分享
 
技术分享
 
case1:
测试最简单的fixed,首先我们把id为father的元素设置为fixed
#father{
  width:300px;
  height:300px;
  background:black;
  position:fixed;
  top:100px;
  left:100px;
}
 
为了展示浏览器滚动情况下,元素位置相对于浏览器窗口不动,将cousin设置为
#cousin{
  width:100px;
  height:2000px;
  background:green;
}
 
效果:
 
技术分享
 
滚动滚动条,father元素的位置不变
技术分享
 
 
case2:
接下来主要区分relative和absolute的情况
删除之前的设定,重新设置child1的元素如下
#child1{
  width:100px;
  height:100px;
  background:blue;
  position:relative;
  top:100px;
  left:100px;
}
 
预测效果:元素并不脱离文档流,但是偏离原来的位置,因为只设定了这么一个元素的position,因此偏离应该是相对于文档。
效果:(不出所料,只有child1偏离了原来位置,哈哈哈哈)
技术分享
 
 
技术分享
 
好,现在在上面的基础上,修改father元素的position,变成relative
#father{
  width:300px;
  height:300px;
  background:black;
  position:relative;
  top:100px;
  left:100px;
}
 
预测效果:整个father元素偏离原来位置,child1和child2元素相对于father的位置不变,cousin的位置同样也不变。
效果:(不出所料,贼哈哈哈哈)
技术分享
 技术分享
 
 
接着,关键的来了,看一下absolute和relative的区别,将上面father元素的position修改为absolute
#father{
  width:300px;
  height:300px;
  background:black;
  position:absolute;
  top:100px;
  left:100px;
}
 
预测效果:absolute因为会使元素脱离原来的位置,所以后面的元素会顶上去,这一点有点像浮动,但是其实我们能控制它的具体位置,所以比浮动更强一点。
效果:(不出所料,呀吼吼吼)
技术分享
 
技术分享
 
 
此时,紧接着我们再设置cousin的属性,将他也absolute起来,看它是相对于谁来设定位置
#cousin{
  width:100px;
  height:100px;
  background:green;
  position:absolute;
  top:100px;
  left:100px;
}
 
预测效果:因为cousin没有父元素,所以它应该是会按照文档来进行绝对定位,和father没关系
效果:(不出所料,我真是佩服自己)
技术分享
 
技术分享
 
我们再把cousin的position改为relative,此时会怎么样呢
#cousin{
  width:100px;
  height:100px;
  background:green;
  position:relative;
  top:100px;
  left:100px;
}
 
预测效果:因为father元素已经脱离了原来的文档流,所以cousin元素会顶到最前面,此时的相对定位,就是相对于文档,所以cousin的位置应该不会改变。
效果:(不出所料,我感觉自己快超神了)
 技术分享
 
 
再次,我们把father元素的position改回为relative,此时father元素回归文档流,把cousin元素顶回原来的位置,也就是father元素的后面
#father{
  width:300px;
  height:300px;
  background:black;
  position:relative;
  top:100px;
  left:100px;
}
 
预测效果:因为father回到文档流中了,cousin元素只好屈居father后面,而他本身的绝对定位使得他的top是相对father元素在文档流中的位置来设定的,所以cousin的top应该会在father正下方的位置,注意是文档流中的位置,而非重新定位后的位置
效果:(不出所料,妈妈喊我回家吃饭了)
技术分享
 技术分享
 
总结一下:
  1. static就是默认设定,此时top,left,right,buttom无效,不再阐述
  2. fixed就是相对于浏览器窗口来进行定位,就像有些网站上固定在窗口中,挥之不去的小广告,跟着你走
  3. relative不会使得元素脱离文档流,元素仍然在原来的位置占有空间,而显示出来是偏离的位置,同时,如果父元素是relative或者absolute的话,就相对于父元素进行偏离
  4. absolute会使得元素脱离文档流,类似于flow浮动,同样,如果父元素是relative或者absolute的话,就相对于父元素进行偏离
  5. 注意所有元素的位置定位都是根据在文档流中原来的位置,而非top,left,right,buttom等设定后显示出来的位置,切记切记。
 
原创内容,转载请注明出处~
吃饭吃饭~

以上是关于css中关于字体颜色的设置的主要内容,如果未能解决你的问题,请参考以下文章

win 7 64位安装后网页标签字体颜色偏黄偏红。

如何使用 Win32 设置组框标题的字体和颜色

Win10如何更改CMD命令窗口颜色及字体大小

C语言或C++怎么设置部分字体的颜色

请教下关于CKEditor富文本编辑框设置字体颜色的问题

html中字体颜色设置了,却显示不出来