javascript - Align H2 vertically, inside of the dynamically sized DIV -


i need aligning h2 inside of masonryjs blocks - vertically , horizontally, each block has dynamic width/height, (whatever image size is). there hover state h2 tag.

i have tried many different approaches, none seem work.

any 1 has idea whats cleanest way around this?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/masonry/3.3.0/masonry.pkgd.min.js"></script>  <script type="text/javascript"> $(document).ready( function() {    $('.grid').masonry({     itemselector: '.grid-item',     columnwidth: 160   });  }); </script> <style type="text/css"> * {   -webkit-box-sizing: border-box;           box-sizing: border-box; }  body { font-family: sans-serif; }  /* ---- grid ---- */  .grid {   background: #fff;   width: 90%;   max-width: 1200px;   margin: 0 auto; }  /* clearfix */ .grid:after {   content: '';   display: block;   clear: both; }  /* ---- grid-item ---- */  .grid-item {   /* width: 49%; */   float: left;   background: #ccc;   margin: 5px;   position: relative;   text-align: center; }  h2.img-title {   display: block;   height: 100%;   margin-bottom: 0;   margin-top: 0;   position: absolute;   top: 0;   width: 100%;   background: rgba(255,255,255,0.7);   opacity: 0; }  .grid-item:hover h2.img-title {   opacity: 1; }  </style>    <div class="grid">    <div class="grid-item">     <img src="https://s-media-cache-ak0.pinimg.com/236x/9b/8c/23/9b8c23be33111cc917862ad21c8e85ae.jpg" />     <h2 class="img-title">image description</h2>   </div>    <div class="grid-item">     <img src="http://3.bp.blogspot.com/-vfzt5p9p4ja/tltjfukg27i/aaaaaaaabgq/ujub-_1lgag/s640/fashion156tailoredissuem03.jpg" />     <h2 class="img-title">image description long text , testing if goes on edge</h2>   </div>    <div class="grid-item">     <img src="https://klosetkase.files.wordpress.com/2010/01/colbyjamarbycodazzi011.jpg" />     <h2 class="img-title">image description normal text</h2>   </div>    <div class="grid-item">     <img src="https://klosetkase.files.wordpress.com/2009/12/32.jpg" />     <h2 class="img-title">image description</h2>   </div>    <div class="grid-item">     <img src="https://s-media-cache-ak0.pinimg.com/736x/78/55/25/7855251d88a66f2f3ba8b5a7a44edaf8.jpg" />     <h2 class="img-title">image description</h2>   </div>    <div class="grid-item">     <img src="https://mensrag.files.wordpress.com/2009/09/118397_9401.jpg?w=420" />     <h2 class="img-title">image description</h2>   </div>    <div class="grid-item">     <img src="http://www.thecoolhour.com/wp-content/uploads/2013/10/rvlv_clothing_mens_press_kit_0002.jpg" />     <h2 class="img-title">image description</h2>   </div>    <div class="grid-item">     <img src="http://i874.photobucket.com/albums/ab306/districtcut2/scarfknit.png" />     <h2 class="img-title">image description</h2>   </div>    <div class="grid-item">     <img src="http://attheloft.typepad.com/.a/6a00e54ecca8b9883301630400d2ba970d-pi" />     <h2 class="img-title">image description</h2>   </div>    <div class="grid-item">     <img src="https://s-media-cache-ak0.pinimg.com/236x/d6/ee/a5/d6eea52144d63e4fc2e923d0dd6eaccb.jpg" />     <h2 class="img-title">image description</h2>   </div>    <div class="grid-item">     <img src="http://graphics8.nytimes.com/images/2015/03/08/t-magazine/08mens-well-beatnik-slide-vt66/08mens-well-beatnik-slide-vt66-jumbo.jpg" />     <h2 class="img-title">image description</h2>   </div>    <div class="grid-item">     <img src="http://2.bp.blogspot.com/-ymce5tixdzm/vsvwfpkc0gi/aaaaaaaejj8/chvdf-j-_2u/s1600/3.jpg" />     <h2 class="img-title">image description</h2>   </div> </div> 

http://jsfiddle.net/lvekua/fdwv1sqk/

wrap text inside h2 in span element.

html:

<h2 class="img-title"><span>image description long text , testing if goes on edge</span></h2> 

css:

h2.img-title {     display: block;     margin-bottom: 0;     margin-top: 0;     position: absolute;     top: 0;     left: 0;     width: 100%;     height: 100%;     background: rgba(255,255,255,0.7);     opacity: 0; }  h2.img-title span {     position: absolute;     left: 0;     top: 50%;     transform: translatey(-50%);     -webkit-transform: translatey(-50%); /* ch <36, saf 5.1+, ios, =<4.4.4 */     -ms-transform: translatey(-50%); /* ie 9 */     transform: translatey(-50%); /* ie 10, fx 16+, op 12.1+ */     width: 100%; } 

demo: https://jsfiddle.net/lmgonzalves/fdwv1sqk/4/


Comments

Popular posts from this blog

PHP DOM loadHTML() method unusual warning -

python - How to create jsonb index using GIN on SQLAlchemy? -

c# - TransactionScope not rolling back although no complete() is called -