绝对定位跨度不会相应调整大小

时间:2014-06-16 07:24:48

标签: php dynamic absolute

我正在使用PHP开发一个主页,它有一个动态加载菜单的菜单栏。 在菜单栏下方是一个div,我用来构建动态子菜单,在菜单上悬停菜单上显示。

子菜单在表格中构建并放置在跨度中,该跨度绝对具有限定的宽度和必要的左定位。问题是,随着屏幕分辨率的变化,跨度的宽度和位置无法正常显示,它实际上会缩小并出现在其他地方。

动态创建子菜单

<?php 
$menu_num = 1;
$left_pos = 316;
for ($i = 0; $i < count($menu_arr); $i++) {
    $desc   = "<table width = '100%' id = 'submenu_table' cellspacing = '7' > ";
    $result = mysql_query("select s.SUB_MENU_URL, s.SUB_MENU_DESC from $table_user_menu m, $table_sub_menu s where m.EMP_ID = '".$_SESSION['EMP_ID']."' and m.SUB_MENU_ID = s.SUB_MENU_ID and m.MENU_ID = $menu_arr[$i] order by s.DISPLAY_ORDER");
    while ($row = mysql_fetch_assoc($result)) {
        $temp = " < tr><td style = 'text-align:center;' ><a href =.".$row['SUB_MENU_URL']." style = 'text decoration:none;' > ".$row['SUB_MENU_DESC']."</a ></td ></tr > ";
        $desc = $desc.$temp;
    }
    $desc = $desc."</table > ";
    draw_submenu($desc, $menu_num, $left_pos);
    $left_pos += 141;
    $menu_num++;
}

function draw_submenu($desc, $menu_num, $left_pos)
{
    $left = $left_pos."px";
    echo " < span id = 'submenu".$menu_num."' class='drop_down_menu' style = 'left:$left' > ".$desc."</span > ";
}
?>

即使屏幕分辨率发生变化,子菜单部分也必须在菜单下正确显示。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

span是一个内联标记,不能有宽度。如果你想设置一个,你需要将它设置为一个块元素:

display: block

display: inline-block

为此目的,你当然可以使用div而不是span。

相关问题