javascript - 如何将样式仅应用于 HTML 中的一个 div?

标签 javascript jquery html css

在尝试使 style.css 页面仅适用于 index.html 文件中的某个 div 之前,我一直在使用代码。这是我当前的代码:http://codepen.io/anon/pen/LEXxeM

我所做的一切(导致它停止工作)是将 style.css 页面完全包裹在“adder {}”中,并将正文中的所有代码放在一个 div 标记中。

关于为什么这是不正确的步骤有什么想法吗?

如果无法访问codepen,下面是代码。

HTML:

<!DOCTYPE html>
<!--

-->
<html lang="en">
    <head>
        <link type="text/css" rel="stylesheet" href="css/styleok.css" />
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
        <script src="js/init.js"></script>





    </head>



   <body>


        <div class="adder">
        <div id="container">
            <header>
                 <h1>Task ListO</h1>
              <a href="#" id="clear">Clear all</a>

            </header>

            <section id="taskIOSection">
                    <div id="formContainer">
                    <form id="taskEntryForm">
                        <input id="taskInput" placeholder="Add your interests here..." />
                    </form>
                </div>
                <ul id="taskList"></ul>
            </section>
        </div>
        </div>






    </body>
</html>

CSS

    @import url(http://fonts.googleapis.com/css?family=Open+Sans:400, 300, 600);


    adder {

     * {
        padding:0;
        margin:0;
    }
    body {
      background:url('');
        background-color:#2a2a2a;
        font-family:'Open Sans', sans-serif;
    }
    #container {
        background-color: #111216;
        color:#999999;
        width:350px;
        margin: 50px auto auto auto;
        padding-bottom:12px;
    }
    #formContainer {
        padding-top:12px
    }
    #taskIOSection {
    }
    #taskInput {

        font-size:14px;
        font-family:'Open Sans', sans-serif;
        height:36px;
        width:311px;
        border-radius:100px;
        background-color:#202023;
        border:0;
        color:#fff;
        display:block;
        padding-left:15px;
       -webkit-transition: all 0.30s ease-in-out;
      -moz-transition: all 0.30s ease-in-out;
      -ms-transition: all 0.30s ease-in-out;
      -o-transition: all 0.30s ease-in-out;
    }
    #taskInput:focus{
      box-shadow: 0px 0px 1pt 1pt #999999;
     background-color:#111216; 
      outline:none;
    }
    ::-webkit-input-placeholder {
        color: #333333;
        font-style:italic;
        /* padding-left:10px; */
    }
    :-moz-placeholder {
        /* Firefox 18- */
        color: #333333;
        font-style:italic;
    }
    ::-moz-placeholder {
        /* Firefox 19+ */
        color: #333333;
        font-style:italic;
    }
    :-ms-input-placeholder {
        color: #333333;
        font-style:italic;
    }
    header {
        margin-top:0;
        background-color:#F94D50;
    width:338px;
    height:48px;
    padding-left:12px;
}
header h1 {
    font-size:25px;
    font-weight:300;
    color:#fff;
    line-height:48px;
  width:50%;
  display:inline;
}
header a{

  width:40%;
  display:inline;
  line-height:48px;
}
#taskEntryForm {
    background-color:#111216;
    width:326px;
    height: 48px;
    border-width:0px;
    padding: 0px 12px 0px 12px;
    font-size:0px;
}
#taskList {
    width: 350px;
    margin:auto;
    font-size:16px;
    font-weight:600;
}
ul li {
    background-color:#17181D;
    height:48px;
    width:314px;
    padding-left:12px;
    margin:0 auto 10px auto;
    line-height:48px;
    list-style:none;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}    

}

JS:

  $(document).ready(function () {
                        var i = 0;
                        for (i = 0; i < localStorage.length; i++) {
                            var taskID = "task-" + i;
     $('#taskList').append("<li id='" + taskID + "'>" + localStorage.getItem(taskID) + "</li>");
                        }
                        $('#clear').click(function () {
                            localStorage.clear();
                        });
                        $('#taskEntryForm').submit(function () {
                            if ($('#taskInput').val() !== "") {
                                var taskID = "task-" + i;
                                var taskMessage = $('#taskInput').val();
                                localStorage.setItem(taskID, taskMessage);
    $('#taskList').append("<li class='task' id='" + taskID + "'>" + taskMessage + "</li>");
                                var task = $('#' + taskID);
                                task.css('display', 'none');
                                task.slideDown();
                                $('#taskInput').val("");
                                i++;
                            }
                            return false;
                        });

                        $('#taskList').on("click", "li", function (event) {
                            self = $(this);
                            taskID = self.attr('id');
                            localStorage.removeItem(taskID);
                            self.slideUp('slow', function () {
                                self.remove();
                            });

                        });


                    });

谢谢。

最佳答案

通常,对于这些单独的或不同的页面,我会考虑将样式类直接添加到 body 标记,而不是将所有内容包装在一个额外的 div 中,因为它没有语义目的,它实际上仅用于样式目的。

<body class="adder">
  <div id="container">
    <!-- other code -->
  </code>
</body>

然后在同一样式表中为您的自定义样式页面添加一些特定样式。这些需要在原始定义之后声明。

/* adder overrides */
.adder #container {
    background-color: #0094FF;
}

.adder header {
    background-color:#00FF7F;
}

.adder #taskEntryForm {
    background-color:#0043FF;
}

由于样式 .adder #container 在此实例中更为具体,因此将应用此样式。这是一组复合样式,因此首先将应用 STLye #container,然后来自 .adder #container 的样式将覆盖此类中的任何特定内容。

如果您使用的是 Google Chrome,然后按 F12,您可以在“元素”选项卡中看到样式链(以及在该窗口中更改它们以用于学习/演示目的)

Demo on CodePen

关于javascript - 如何将样式仅应用于 HTML 中的一个 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29074321/

相关文章:

html - float 不对齐彼此相邻的元素

javascript - 关闭/打开模式时更新字符计数

javascript - 无法获取下拉项的 ID

javascript - JS输出对象数组

jquery - 如何在 laravel 中使用 jquery load 加载页面?

javascript - jquery自动返回值

html - 如何垂直对齐图像

html - 508/可访问性规则 (1) 链接必须有可识别的文本,(2) 空表格单元格(Axe 插件)

javascript - 如何在 ASP.NET 的代码隐藏中创建 'onkeydown' 事件?

javascript - Jquery mobile - 单击按钮添加到 UL