Align background image middle and center

后端 未结 4 1165
予麋鹿
予麋鹿 2021-01-24 06:38

Here\'s the html:


                      
相关标签:
4条回答
  • 2021-01-24 07:01

    Try this:

    <style type="text/css">
      .gallerybox {text-align:center;vertical-align:middle;height:400px;line-height:400px;}
      .gallerbox img {display:inline; vertical-align:middle;}
    </style>
    
    <div class="gallerybox">
       <a href="/CustomContentRetrieve.aspx?ID=398791">
       <img alt="" src="/Utilities/image.jpg" />
    </a>
    
    0 讨论(0)
  • 2021-01-24 07:05

    Jackson. I'm going to recommend a bit of an HTML rewrite, which I understand may not be possible, but I think this might be the most effective solution to your problem.

    Create a hidden image with that database encoded <img>:

    img#imgUtility {
       display: none;
    }
    

    (CSS and HTML)

    <img id="imgUtility" class="galleryImage" alt=""
    src="/Utilities/ShowThumbnail.aspx?USM=1&amp;W=350&amp;H=350&amp;
    R=1&amp;Img={tag_image_value}" />
    

    Then after the page has loaded and image has resolved to an actual URL, you can replace the <img> with a <span> in your posted HTML, set the hidden tag src to the background image of the <span> using it's inline style attribute via JavaScript:

    // galleryBoxLinkTarget should be a reference to the <a> in a div.galleryBox
    function imgReplacement(galleryBoxLinkTarget) {
       var span = document.createElement("span");
       var img = document.getElementById("imgUtility");
       span.style.backgroundImage = "url('" + img.getAttribute("src") + "')";
       span.className = "imgReplacement";
       galleryBoxLinkTarget.appendChild(span);
    }
    

    (JavaScript and HTML)

    <div class="gallerybox">
       <a href="/CustomContentRetrieve.aspx?ID=398791">
          <!-- <span> goes here -->
       </a>
    </div>
    

    And then do a bit of clever CSS'ing:

    span.imgReplacement {
       display: block;
       background-position: 50% 50%;
       background-repeat: no-repeat;
       width: 200px;
       height: 200px;
    }
    

    This should center the picture regardless of dimension, as well as allow you to remove the inline width and height attributes. Hope this works out for you!

    0 讨论(0)
  • 2021-01-24 07:12

    Maybe something like the following:

    <div class="gallerybox"> 
      <a href="/CustomContentRetrieve.aspx?ID=398791"> 
        <img id="imgUtility" class="galleryImage" alt="" src="/Utilities/ShowThumbnail.aspx?USM=1&amp;W=400&amp;H=400&amp;R=1&amp;Img={tag_image_value}" />"  /> 
      </a> 
    </div> 
    
    .gallerybox {
      width:200px;
      height:200px;
      overflow:hidden;
    }
    
    <!-- Edit Again -->
    <script language="javascript">
    window.onload = fixImage;
    
    function fixImage() {
      var img = document.getElementById('imgUtility');
      var x = img.offsetWidth;
      var y = img.offsetHeight;
    
      img.style.left = -(x / 2);
      img.style.top = -(y / 2);
    }
    </script>
    
    0 讨论(0)
  • 2021-01-24 07:12

    Use a simple JQuery fn called center ( Usage: $(element).center() ):

         jQuery.fn.center = function() {
            this.css("position","absolute");
            this.css("top", (($(window).height() - this.outerHeight()) / 2) + $(window).scrollTop() + "px");
            this.css("left", (($(window).width() - this.outerWidth()) / 2) + $(window).scrollLeft() + "px");
            this.css("bottom", (($(window).width() - this.outerWidth()) / 2) + $(window).scrollLeft() + "px");
            return this;
          }
        $(document).ready(function(){
    $(#imgUtility).center();
    )};
    

    With the HTML:

    <div class="gallerybox"> 
      <a href="/CustomContentRetrieve.aspx?ID=398791"> 
        <img id="imgUtility" class="galleryImage" alt="" src="/Utilities/ShowThumbnail.aspx?USM=1&amp;W=400&amp;H=400&amp;R=1&amp;Img={tag_image_value}" />"  />  
      </a> 
    </div> 
    
    0 讨论(0)
提交回复
热议问题