Reputation: 863
Need the image to fill top to bottom on right side of list-group. I have several css overrides in my style section, and can't seem to figure out what I'm missing? not sure if giving a fixed height width is the way to go or how to have it fill the set list height.
attached image shows the current alignment which seems to be below the label?
some list will already drop to line below.
<style>
.checkbox label:after,
.radio label:after {
content: '';
display: table;
clear: both;
}
.checkbox .cr,
.radio .cr {
position: relative;
display: inline-block;
border: 1px solid #a9a9a9;
border-radius: .25em;
width: 1.3em;
height: 1.3em;
float: left;
margin-right: .5em;
}
.radio .cr {
border-radius: 50%;
}
.checkbox .cr .cr-icon,
.radio .cr .cr-icon {
position: absolute;
font-size: .8em;
line-height: 0;
top: 50%;
left: 20%;
}
.radio .cr .cr-icon {
margin-left: 0.04em;
}
.checkbox label input[type="checkbox"],
.radio label input[type="radio"] {
display: none;
}
.checkbox label input[type="checkbox"] + .cr > .cr-icon,
.radio label input[type="radio"] + .cr > .cr-icon {
transform: scale(3) rotateZ(-20deg);
opacity: 0;
transition: all .3s ease-in;
}
.checkbox label input[type="checkbox"]:checked + .cr > .cr-icon,
.radio label input[type="radio"]:checked + .cr > .cr-icon {
transform: scale(1) rotateZ(0deg);
opacity: 1;
}
.checkbox label input[type="checkbox"]:disabled + .cr,
.radio label input[type="radio"]:disabled + .cr {
opacity: .5;
}
.bv-bg-lightpink {
background-color: lightpink;
pointer-events: none;
cursor: default;
}
.bv-bg-lightblue {
background-color: lightblue;
pointer-events: none;
cursor: default;
}
.bv-bg-lightyellow {
background-color: lightyellow;
pointer-events: none;
cursor: default;
}
.bv-bg-lightgreen {
background-color: lightgreen;
pointer-events: none;
cursor: default;
}
.bv-bg-yellow {
background-color: yellow;
pointer-events: none;
cursor: default;
}
.bv-bg-red {
background-color: red;
pointer-events: none;
cursor: default;
}
.bv-not-active {
pointer-events: none;
cursor: default;
}
.MyDrugPix img {
width: 40px;
height: 40px;
float:right
}
</style>
HTML:
<a href="#acet" class="list-group-item" data-toggle="collapse" style="background-color: lightyellow;">
<div class="checkbox">
<label style="font-size: 1.5em">
ACETAMINOPHEN
</label>
<div class="MyDrugPix" style="padding-right: 0px;"><img src="/images/IMG_0741.JPG" alt="DRUGS" class="img-responsive"></div>
</div>
</a>
Upvotes: 1
Views: 2121
Reputation: 56297
Here is a CSS only solution for your problem.
Basically I set the div with the class checkbox
as width:100%
.
Then I make the div of the image, as display:inline-block
so that it does not take up the whole width. Then set it to the right using the property float:right;
, but this will cause the parent to not detect the elements height, to solve this I have added a clearfix. Refer here for more about clearfix.
CSS:
.MyDrugPix {
padding-right: 0px;
display: inline-block;
float: right;
}
.checkbox {
width: 100%;
}
Clearfix:
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
* html .clearfix {
zoom: 1;
}
/* IE6 */
*:first-child+html .clearfix {
zoom: 1;
}
.checkbox label:after,
.radio label:after {
content: '';
display: table;
clear: both;
}
.checkbox .cr,
.radio .cr {
position: relative;
display: inline-block;
border: 1px solid #a9a9a9;
border-radius: .25em;
width: 1.3em;
height: 1.3em;
float: left;
margin-right: .5em;
}
.radio .cr {
border-radius: 50%;
}
.checkbox .cr .cr-icon,
.radio .cr .cr-icon {
position: absolute;
font-size: .8em;
line-height: 0;
top: 50%;
left: 20%;
}
.radio .cr .cr-icon {
margin-left: 0.04em;
}
/*My changes*/
.MyDrugPix {
padding-right: 0px;
display: inline-block;
float: right;
}
.checkbox {
width: 100%;
}
/*Clearfix for floating elements*/
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
* html .clearfix {
zoom: 1;
}
/* IE6 */
*:first-child+html .clearfix {
zoom: 1;
}
/* IE7 */
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<a href="#acet" class="list-group-item" data-toggle="collapse" style="background-color: lightyellow;">
<div class="checkbox clearfix">
<label style="font-size: 1.5em">
ACETAMINOPHEN
</label>
<div class="MyDrugPix"><img src="http://via.placeholder.com/50x50" alt="DRUGS" class="img-responsive"></div>
</div>
</a>
here is a CSS3 solution if you are open to it.
Using flex properties we can do the same by setting 3 properties alone!
CSS3
.checkbox {
display: flex !important;
justify-content: space-between;
align-items: center;
}
.checkbox label:after,
.radio label:after {
content: '';
display: table;
clear: both;
}
.checkbox .cr,
.radio .cr {
position: relative;
display: inline-block;
border: 1px solid #a9a9a9;
border-radius: .25em;
width: 1.3em;
height: 1.3em;
float: left;
margin-right: .5em;
}
.radio .cr {
border-radius: 50%;
}
.checkbox .cr .cr-icon,
.radio .cr .cr-icon {
position: absolute;
font-size: .8em;
line-height: 0;
top: 50%;
left: 20%;
}
.radio .cr .cr-icon {
margin-left: 0.04em;
}
.checkbox {
display: flex !important;
justify-content: space-between;
align-items: center;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<a href="#acet" class="list-group-item" data-toggle="collapse" style="background-color: lightyellow;">
<div class="checkbox">
<label style="font-size: 1.5em">
ACETAMINOPHEN
</label>
<div class="MyDrugPix" style="padding-right: 0px;"><img src="http://via.placeholder.com/50x50" alt="DRUGS" class="img-responsive"></div>
</div>
</a>
Upvotes: 2