首页 > 解决方案 > 使用输入水平内联图像

问题描述

如何水平内联图像:<%= image_tag form.object.images_url(:thumb).to_s %>输入control-fileupload以下内容:

    input[type=file] {
      display: block !important;
      right: 1px;
      top: 1px;
      height: 34px;
      opacity: 0;
      width: 100%;
      background: none;
      position: absolute;
      overflow: hidden;
      z-index: 2;
    }

    .control-fileupload {
      display: block;
      border: 1px solid #d6d7d6;
      background: #FFF;
      border-radius: 4px;
      width: 100%;
      height: 36px;
      line-height: 36px;
      padding: 0px 10px 2px 10px;
      overflow: hidden;
      position: relative;

      &:before, input, label {
        cursor: pointer !important;
      }

      /* File upload button */
       &:before {
        /* inherit from boostrap btn styles */
        padding: 4px 12px;
        margin-bottom: 0;
        font-size: 14px;
        line-height: 20px;
        color: #333333;
        text-align: center;
        text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
        vertical-align: middle;
        cursor: pointer;
        background-color: #f5f5f5;
        background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
        background-repeat: repeat-x;
        border: 1px solid #cccccc;
        border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
        border-bottom-color: #b3b3b3;
        border-radius: 4px;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
        transition: color 0.2s ease;

        /* add more custom styles*/
        content: 'Browse';
        display: block;
        position: absolute;
        z-index: 1;
        top: 2px;
        right: 2px;
        line-height: 20px;
        text-align: center;
      }
      &:hover, &:focus {
        &:before {
          color: #333333;
          background-color: #e6e6e6;
          color: #333333;
          text-decoration: none;
          background-position: 0 -15px;
          transition: background-position 0.2s ease-out;
        }
      }

      label {
        line-height: 24px;
        color: #999999;
        font-size: 14px;
        font-weight: normal;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        position: relative;
        z-index: 1;
        margin-right: 90px;
        margin-bottom: 0px;
        cursor: text;
      }
    }
<div class="nested-fields">
  <img src="pic_trulli.jpg" alt="Italian Trulli">
  <span class="control-fileupload">
    <input type="text" name="fname">
  </span>
  <div class="field_with_errors">
    <label class="message">if error exists</label>
      <a href="url">Remove</a>
  </div>
</div>

实现@mulla.azzi 的建议,我得到了这个:

在此处输入图像描述

标签: csstwitter-bootstrapsass

解决方案


将 'control-fileupload' 类的 'block' 更新为 'inline-block' 并删除 width 属性对您有用。

    input[type=file] {
      display: block !important;
      right: 1px;
      top: 1px;
      height: 34px;
      opacity: 0;
      width: 100%;
      background: none;
      position: absolute;
      overflow: hidden;
      z-index: 2;
    }

    .control-fileupload {
      display: inline-block;
      border: 1px solid #d6d7d6;
      background: #FFF;
      border-radius: 4px;
      height: 36px;
      line-height: 36px;
      padding: 0px 10px 2px 10px;
      overflow: hidden;
      position: relative;

      &:before, input, label {
        cursor: pointer !important;
      }

      /* File upload button */
       &:before {
        /* inherit from boostrap btn styles */
        padding: 4px 12px;
        margin-bottom: 0;
        font-size: 14px;
        line-height: 20px;
        color: #333333;
        text-align: center;
        text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
        vertical-align: middle;
        cursor: pointer;
        background-color: #f5f5f5;
        background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
        background-repeat: repeat-x;
        border: 1px solid #cccccc;
        border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
        border-bottom-color: #b3b3b3;
        border-radius: 4px;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
        transition: color 0.2s ease;

        /* add more custom styles*/
        content: 'Browse';
        display: block;
        position: absolute;
        z-index: 1;
        top: 2px;
        right: 2px;
        line-height: 20px;
        text-align: center;
      }
      &:hover, &:focus {
        &:before {
          color: #333333;
          background-color: #e6e6e6;
          color: #333333;
          text-decoration: none;
          background-position: 0 -15px;
          transition: background-position 0.2s ease-out;
        }
      }

      label {
        line-height: 24px;
        color: #999999;
        font-size: 14px;
        font-weight: normal;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        position: relative;
        z-index: 1;
        margin-right: 90px;
        margin-bottom: 0px;
        cursor: text;
      }
    }
<div class="nested-fields">
  <img src="pic_trulli.jpg" alt="Italian Trulli">
  <span class="control-fileupload">
    <input type="text" name="fname">
  </span>
  <div class="field_with_errors">
    <label class="message">if error exists</label>
      <a href="url">Remove</a>
  </div>
</div>


推荐阅读