javascript - 通过外部 .js 文件内联显示列表元素

标签 javascript html css

我使用外部脚本和外部样式创建了一个简单的 html 页面。 在其中使用

  • 元素显示菜单列表。

    我页面中的问题是列表元素以 block 的形式垂直显示,尽管它们应该以内联方式显示。 我找不到要更正的错误,所以在这里我附上了所有相关代码。如果您发现错误,请帮助我了解错误。 谢谢。

    <!DOCTYPE HTML>
    <html>
    <head>
    <title>
    WEB pAGE
    </title>
    <link rel="stylesheet" type="text/css" href="mystyle.css">
    <div class="div1">
    <h1 align="center">Hello</h1> 
    </div>
    <script  src="myscript.js"></script>
    </head>
    <body onload = "myfunction()">
    <br><br><br><br><br><br>
    <div class="div3"><br></div>
    <div class="mmm">abcde</div>
    </body>
    </html>
    

    myscript.js

    function myfunction() {
    var x = document.getElementsByClassName("mmm");
    x[0].innerHTML = x[0].innerHTML = '<ul id="menu" align="center"><li id= "m1"><a href="abc.html"  id="tn" > Abc</a></li><br> <li id= "m1"> <a href="def.html"  id="tn">DEF</a></li><br><li id= "m1"><a href="ghi" id="tn" >GHI</a></li><br><li id= "m1"><a href="jkl.html"    id="tn"> JKL</a></li></ul> ';
    }
    

    mystyle.css

    h1  {
        font-family:Comic Sans MS;
         }
    .div1   {
        position:fixed;
        height:110px;
        width:1350px;
        background-color:Teal;
        color:White;
        margin:0px;
        padding:0px;
        }
    .mmm{   position:fixed;
        top:115px;
        left:419px;
        background-color:#69A005;
        color:White;
        height:50px;
        width:1000px;
    }
    .div3{  position:fixed;
        top:115px;
        background-color:#69A005;
        color:White;
        height:50px;
        width:430px;
        }
     ul#menu{   color:white;
        margin:5px;
        padding:0px;
                         }
    li#m1   {
        display:inline;
        margin:10px;
        padding:10px;
        color:White;
        }
    a#tn   {    display:inline;
                width:90px;
        background-color:#000000;
        padding:5px;
        }
    

  • 最佳答案

    从 JS 添加的 HTML 中删除 br 标签。这不仅是无效的 HTML,它还会解决问题,因为即使使用 display:inline 也会强制换行。

    此外,您不能重复使用 ID。您只能在每个页面上使用每个 ID 一次。

    您添加的 HTML(和调整后的 CSS)应该看起来更像这样。

     ul#menu {
         color:white;
         margin:5px;
         padding:0px;
     }
     ul#menu li {
         display:inline;
         margin:10px;
         padding:10px;
         color:White;
     }
     ul#menu li a {
         display:inline;
         width:90px;
        /* removed for clarity 
         background-color:#000000;
        */
         padding:5px;
     }
    <ul id="menu" align="center">
        <li id="m1"><a href="abc.html" id="tn1"> Abc</a>
    
        </li>
        <li id="m2"> <a href="def.html" id="tn2">DEF</a>
    
        </li>
        <li id="m3"><a href="ghi" id="tn3">GHI</a>
    
        </li>
        <li id="m3"><a href="jkl.html" id="tn4"> JKL</a>
    
        </li>
    </ul>

    如您所见,我已经删除了中断标记 br 并调整了所有不能重复使用的 ID。

    关于javascript - 通过外部 .js 文件内联显示列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29822739/

    相关文章:

    javascript - 从第二级 iframe 中选择根文档

    javascript - 对 XML 文档中的特殊字符进行转义

    html - LESS 嵌套与 bootstrap mixin 不起作用

    javascript - 如何在您的应用程序上拥有无需密码即可打开的小部件?

    css - 导航栏 : layout-align ="space-between stretch" doesn't behave correctly

    html - 在图像下添加标题会破坏 Bootstrap 图像网格

    javascript - PhoneGap 在应用程序浏览器中按后退键时未关闭

    javascript - 我在 nuxt.js 中找不到 process.server

    javascript - 隐藏/显示正文背景

    javascript - 如何创建带有彩色标签的 html css js 编辑器,如 w3schools.com