Div将更改与id之后的class放在一起

时间:2012-05-14 05:26:17

标签: php css

我真的面临一个奇怪的问题。以下是代码的代码和示例图片

HTML

<div id="showCatagory_<?php echo $row['catagory_id']; ?>" class="left"  style="display:block">
<?php echo $value; ?>
</div>

CSS

.left { float:left }

当我使用这个<div id="showCatagory_<?php echo $row['catagory_id']; ?>" class="left" style="display:block">时,我得到的图片是错误的

enter image description here

如果我使用<div class="left" id="showCatagory_<?php echo $row['catagory_id']; ?>" style="display:block">,那么我会得到正确的对齐,如下图所示

这里我将class="left"放在id之后使其正确。谁能告诉我为什么

enter image description here

任何人都可以告诉我为什么

<div class="left" id="showCatagory_<?php echo $row['catagory_id']; ?>" class="left"  style="display:block">

不同
<div id="showCatagory_<?php echo $row['catagory_id']; ?>" class="left" style="display:block">

3 个答案:

答案 0 :(得分:1)

问题中仍有一堆错别字,如果仔细观察......但我明白你的意思......你在问为什么class属性的位置会影响结果。

几乎可以肯定的是,那里有一个无关的引号或者类似的东西会破坏你的HTML。 $row[category_id']包含什么?如果有机会在那里有引号,你可以尝试str_replace('"', '', $row[category_id]);

答案 1 :(得分:1)

只要您的价值被消毒;唯一会导致这种情况的是你的PHP在内联语句中抛出一个错误,它会破坏标记标记。

<tag foo="bar" bar="<?php echo foo(); ?>"></tag>

在这个例子中,如果foo()函数引发了错误,而PHP插入了一个很大的错误报告,那么HTML最终会看起来像这样:

<tag foo="bar" bar="Error Statement:
Error details...
  > Error echoes HTML markup characters.
Error trace information (line: 263)"></tag>

错误中包含的任何标记字符都会破坏标记。因此,如果foo="bar"位于PHP错误之后,它将不属于该标记,因为它已被错误中断。

答案 2 :(得分:1)

我是傻瓜。我使用浮动:左,但没有使用清除。使用完之后,我得到了正确的显示。谢谢大家