0

问题:在一种嵌入式样式中,“溢出:隐藏”工作正常,而在另一种嵌入式样式中则不行。

是 CSSDesk 代码(在撰写本文时 jsfiddle 不工作)。

背景:在我的项目中,我必须使用巨大的表格来显示来自数据库的变量——每页最多 75 个变量。我尽力单独使用 div,但我浪费了 20 个小时,最终,我回到了表格(对于你们 CSS 纯粹主义者,我道歉)。

在我的一些 td 中,数据有点长,需要“隐藏”(在这种特殊情况下并不重要,因为数据只是“预览”)。我在网上搜索过,并做了一个实验,其中唯一可以使用“隐藏”的样式元素是 div(我在实验中尝试了 tds 和 spans,但它们不起作用)。

在一个 td 中,我想将一个变量放在左侧,另一个放在右侧 - 大多数情况下,两者都适合 td,但是对于一个非常长的变量,可以切掉右侧变量的一部分. 因此,我编写了 CSS 和 html,并设置了 div 的样式,以使它们符合我的标准——这些是上面提到的 CSSDesk 页面上的两个 td。一切正常。

但!在过去的几个月里,我了解到可以在元素标识符的“类”部分“混合”多种样式(例如<td class="redcolor blueunderline">),我发现在很多情况下使用“少量添加”非常方便一个页面上唯一的元素,您必须重写/添加整个嵌入样式或更改样式表(例如姓名、地址、电话号码、邮编,而您只想“加粗”名称 - class="identifers" vs class="identifiers bold") - 我想知道你的专家是否做过这样的事情?

所以我玩了一点,除了“溢出:隐藏”之外,大部分都在工作。

对于 CSSDesk 示例中的左上 div,我使用了这个 CSS 和 html(效果很好):

.leftdivclass {
   float:left;
   background-color:green;
   color:black;   
   border:2px solid yellow;   
   overflow:hidden;
   white-space:nowrap;
   width:25%;}
<td><div class="leftdivclass" >Upper Left 123456789</div>

对于 CSSDesk 示例中的右上角 div,我使用了这个 CSS 和 html(效果很好):

.rightdivclass {
   float:right;
   background-color:red;
   color:black;
   border:2px solid yellow;
   overflow:hidden;
   white-space:nowrap;
   width:25%;}
<div class="rightdivclass" >Upper Right 123456789</div></td>

对于 CSSDesk 示例中左下角的 div,我使用了这个 CSS 和 html(除了“隐藏”之外,一切都有效——注意突出的数字)

.floatleft {
    float:left;}
.bgblue {
    background-color:blue;}
.bgred {
    background-color:red;}
.lcwhite {
    color:white;}
.lcblack {
    color:black;}
.border2y {
    border:2px solid yellow;}       
overflowhidden {
    overflow:hidden;}
.wsnowrap {
    white-space:nowrap;}
.width25pc {
    width:25%;}
<td><div class="floatleft bgblue lcblack border2y overflowhidden wsnowrap width25pc">Lower Left 123456789</div>

但是,如果我使用相同的 html 并添加 "style="overflow:hidden" 一切正常,就像在 CSSDesk 示例的右下角示例中一样。

<div class="floatright bgred lcblack border2y overflowhidden wsnowrap width25pc" style="overflow:hidden;">Lower Right 123456789</div></td>

问题:

  1. 为什么包含“溢出:隐藏”的单个嵌入式css样式可以工作,但是当它被解析为类命令的单个添加时它不起作用?如果我添加“style="overflow:hidden" - 内联,它为什么会起作用?

  2. 您的专家是否曾经使用过这样的小“类片段”?

再次,我提前感谢您。

4

1 回答 1

0

您可以混合和匹配这些类。如果它可以节省冗余,那就太好了。如果它混淆了类和容器类(即它们所在的父类),那么很难调试你的问题。

很可能它不起作用,因为它的父类或另一个类与溢出属性冲突。内联样式style="overflow:hidden;"几乎总是得到最高优先级,但请记住,它overflow有一个默认属性visible.

如果你调用 2 个类,一个有overflow:hidden;,另一个有overflow:visible;,那么你有可能不会得到你想要的效果。

请记住,像这样的选择器

#divid .divclass 

总会战胜

.divclass

并将被优先处理。

还有,你试过了吗

overflow:hidden !important;

它往往优先于一切。希望有帮助。

于 2013-09-23T03:04:53.667 回答