CSS не применяется к элементу

0

Я посмотрел на другие вопросы, и ничего не работает. У меня есть DIV, который должен создать всплывающее окно, а другое - сделать серый. Я использовал тот же подход на другой странице, и он отлично работает, однако на этой текущей странице CSS не применяется ни к одному из тегов DIV. Вот HTML

<section id="goals" class="goals">
    <button id="addgoal" onclick="popupadd(); return false;">Add Goal</button>

    <div id="darkLayer" class="darkl" style="display:none"></div>       
    <div id="addgoalpop" class="agpop" style="display:none">

        <p><span class="">LogIn</span></p>
        <P><span class="title">Email</span> <asp:TextBox runat="server" ID="emailbox"></asp:TextBox></P>
        <P><span class="title">Password</span> <asp:TextBox runat="server" ID="passbox" TextMode="Password"></asp:TextBox></P>
        <p><Label id="errormsg"></Label></p>           

    </div>   
</section>

Вот CSS, который должен применяться к обеим тегам DIV

.agpop {
    padding:10px 10px 35px;
    text-align:center;
    vertical-align:middle;

    border:solid 1px black;
    position:absolute;
    left:50%;
    top:50%;
    background-color:white;
    z-index:100;

    height:150px;
    margin-top:-200px;

    width:200px;
    margin-left:-100px;
}

.darkl {
    background-color: white;
    filter:alpha(opacity=50); /* IE */
    opacity: 0.5; /* Safari, Opera */
    -moz-opacity:0.50; /* FireFox */
    z-index: 20;
    height: 100%;
    width: 100%;
    background-repeat:no-repeat;
    background-position:center;
    position:absolute;
    top: 0px;
    left: 0px;
}

Используемый JavaScript

   function popupadd()
   {
      document.getElementById("addgoalpop").style.display = 'block';
      document.getElementById("darkLayer").style.display = "";
   }

Может ли кто-нибудь понять, почему это так?

  • 2
    У вас есть display: none установлен в HTML для этих div ... почему? Это скрывает их. В качестве альтернативы, вы можете добавить !important к каждому свойству в вашем CSS-файле, но это ужасно, и вы не должны этого делать.
  • 0
    Я думаю, что он пытается сделать всплывающее окно. Так что это должно быть скрыто, прежде чем его событие будет запущено. Что происходит - всплывающее окно не будет отображаться или вообще не будет стиля?
Показать ещё 13 комментариев
Теги:

3 ответа

0

У вашего darkLayer нет ничего внутри. Похоже, вы можете использовать его в качестве контейнера для содержимого addgoalpop.

Если это ваше намерение, переместите тег закрывающего тега ниже всего содержимого addgoalpop

  • 0
    Этот div - обложка, он действует как фон всплывающих окон. Это предназначено. Это также означает, что это неверно, в любом случае это скорее комментарий.
  • 0
    Я понимаю, что это должно быть фон всплывающего окна. Если использовать darkLayer как контейнер, код будет немного очищен, если нужно будет показать / скрыть один div вместо двух. Это, возможно, обнаружило проблему для OP, которая могла дать им проблему при отображении их всплывающего окна.
0

Я подозреваю, что style="display:none" вызывает проблему. Попробуйте удалить его.

0

Измените свои divs

<div id="darkLayer" class="darkl" style="display:none"></div>       
 <div id="addgoalpop" class="agpop" style="display:none">  

К этому

<div id="darkLayer" class="darkl"></div>       
 <div id="addgoalpop" class="agpop">

Или иначе они не появятся, если вы захотите сделать их скрытыми, а затем всплывать, вы можете сделать что-то, что вызывает событие и изменяет отображение стиля на этих div.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню