1

Any ideas why this code isn't working on IE? I have tested multiple versions and as far as I can tell the :focus element should work but for some reason when I click it nothing happens.

.collapse {
 text-align:left;
}

.collapse > * + *{
  display:none;
  
 }
.collapse > *{
  cursor:pointer;
  }
  
.collapse:focus{
  outline:none;
}
.collapse:focus > * + *{
  display:block; 
}


.accordian-gradient {
 
 /*GRADIENT*/
 background: rgba(168,168,168,1);
/* Old Browsers */background: -moz-linear-gradient(top, rgba(168,168,168,1) 0%, rgba(203,203,203,1) 52%, rgba(234,234,234,1) 100%);
 /* FF3.6+ */background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(168,168,168,1)), color-stop(52%, rgba(203,203,203,1)), color-stop(100%, rgba(234,234,234,1)));
/* Chrome, Safari4+ */background: -webkit-linear-gradient(top, rgba(168,168,168,1) 0%, rgba(203,203,203,1) 52%, rgba(234,234,234,1) 100%);
 /* Chrome10+,Safari5.1+ */background: -o-linear-gradient(top, rgba(168,168,168,1) 0%, rgba(203,203,203,1) 52%, rgba(234,234,234,1) 100%);
 /* Opera 11.10+ */background: -ms-linear-gradient(top, rgba(168,168,168,1) 0%, rgba(203,203,203,1) 52%, rgba(234,234,234,1) 100%);
 /* IE 10+ */background: linear-gradient(to bottom, rgba(168,168,168,1) 0%, rgba(203,203,203,1) 52%, rgba(234,234,234,1) 100%);
/* W3C */filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a8a8a8', endColorstr='#eaeaea', GradientType=0 );
/* IE6-9 */
 
 
}
 <div style="width:100%; max-width:750px; text-align:left;" class="collapse" tabindex="4">
     <div style="width:100%; max-width:750px; text-indent:10px; margin-bottom:10px; padding:5px 0px 5px 0px;" class="accordian-gradient">Question<div style="width:20%; float:right; vertical-align:middle; text-align:right; padding-right:5px;">+&nbsp;</div> </div>
     <div style="width:100%; max-width:700px; cursor:default; padding-bottom:10px; margin: 0 auto;">
     <p>Answer goes here</p>
     </div>
  </div>

Is there something I can add? I'm very limited to what I can use as it's rather unreliable internal stylesheets and no javascript or jquery. I have to keep as much of the CSS inline as possible.

Thanks

Marissa
  • 65
  • 6

1 Answers1

0

:focus selector is allowed on elements that accept keyboard events or other user inputs.

Try using a <button> tag.

button:focus {
  background-color: yellow;
}

<button>Expand me</button>

It seems to be working in Edge.

Edit:

button {
  width: 100%;
  max-width: 750px;
  background-color: Transparent;
  background-repeat: no-repeat;
  border: none;
  cursor: pointer;
  overflow: hidden;
  outline: none;
}

p {
  display: none;
  background-color: aqua;
  padding: 20px;
}

button:focus p {
  display: block;
}

span {
  width: 100%;
  max-width: 750px;
  text-align: left;
}

.gradient {
  /*GRADIENT*/
  background: rgba(168, 168, 168, 1);
  /* Old Browsers */
  background: -moz-linear-gradient(top, rgba(168, 168, 168, 1) 0%, rgba(203, 203, 203, 1) 52%, rgba(234, 234, 234, 1) 100%);
  /* FF3.6+ */
  background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(168, 168, 168, 1)), color-stop(52%, rgba(203, 203, 203, 1)), color-stop(100%, rgba(234, 234, 234, 1)));
  /* Chrome, Safari4+ */
  background: -webkit-linear-gradient(top, rgba(168, 168, 168, 1) 0%, rgba(203, 203, 203, 1) 52%, rgba(234, 234, 234, 1) 100%);
  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top, rgba(168, 168, 168, 1) 0%, rgba(203, 203, 203, 1) 52%, rgba(234, 234, 234, 1) 100%);
  /* Opera 11.10+ */
  background: -ms-linear-gradient(top, rgba(168, 168, 168, 1) 0%, rgba(203, 203, 203, 1) 52%, rgba(234, 234, 234, 1) 100%);
  /* IE 10+ */
  background: linear-gradient(to bottom, rgba(168, 168, 168, 1) 0%, rgba(203, 203, 203, 1) 52%, rgba(234, 234, 234, 1) 100%);
  /* W3C */
  filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='#a8a8a8', endColorstr='#eaeaea', GradientType=0);
  /* IE6-9 */
}
<button class="gradient">
  <span>Question</span>
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla gravida urna lacus, id tempor nulla tristique dapibus. Nulla efficitur felis iaculis mi aliquet, vel maximus dolor molestie. Nullam efficitur, urna et pretium gravida, enim justo lacinia justo, eget placerat elit nisi id sem. Pellentesque consequat pulvinar turpis, quis euismod velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin nec mattis dui, eget dapibus neque. Aliquam erat volutpat. Integer a dolor sit amet velit auctor egestas. Proin nibh felis, egestas et porta non, tincidunt non nunc. Duis aliquam, enim vulputate porta maximus, mi nunc pharetra turpis, vel vestibulum ipsum risus sit amet purus. Curabitur id bibendum ligula. Aenean ut ipsum sem. Sed placerat auctor accumsan. Morbi mollis id sapien eget ultricies. Cras tristique velit massa, a tincidunt nibh molestie commodo. Maecenas volutpat sit amet massa eu pulvinar.</p>
</button>
Mechetle
  • 58
  • 1
  • 8
  • I don't understand how to use the – Marissa Aug 24 '16 at 10:16
  • I have tested it on IE and this works :D You don't need doctype. – Mechetle Aug 24 '16 at 11:09
  • Don't remove `doctype`. That is not recommended at all. If you have to remove it to work, then there is something wrong in your code. And you should fix that, instead of removing `doctype`. – Jerad Rutnam Aug 24 '16 at 11:26