2017-07-04 7 views
1

私は下の図のように作成しようとしています。これまでのところ、それは私のために良く見えません。イメージの横に縦のテキストを並べ替えます

enter image description here

ここJSFiddleです:https://jsfiddle.net/6o3nz6g9/

HTML:

<h1>This is Sparta!</h1> 
<div class="container"> 
<div class="row"> 
    <div class="col-xs-4"> 
     <div class="services__text">Title Text Here</div> 
     <img src="https://image.ibb.co/hccDVF/sample.jpg" class="img-responsive" alt=""/> 
    </div> 
    <div class="col-xs-4"> 
     <div class="services__text">Title Text Here</div> 
     <img src="https://image.ibb.co/hccDVF/sample.jpg" class="img-responsive" alt=""/> 
    </div> 
    <div class="col-xs-4"> 
     <div class="services__text">Title Text Here</div> 
     <img src="https://image.ibb.co/hccDVF/sample.jpg" class="img-responsive" alt=""/> 
    </div> 
</div> 
</div> 

CSS:

.services__text { 
    -ms-transform: rotate(-90deg); 
    -moz-transform: rotate(-90deg); 
    -webkit-transform: rotate(-90deg); 
    transform: rotate(-90deg); 
    -ms-transform-origin: right top 0; 
    -moz-transform-origin: right top 0; 
    -webkit-transform-origin: right top 0; 
    transform-origin: right top 0; 
    padding: 10px; 
    float: left; 
} 

どのように私は、この所望の効果を得るために行うのですか?参考:私はBootstrapフレームワークに取り組んでいます。

答えて

5

.services__textの位置を変更し、次にtranslateを使用して、imageの前に揃えることができます。

.services__text { 
 
    position: absolute; 
 
    left: 0; 
 
    top: 0; 
 
    transform: rotate(-90deg) translate(-40%, -200%); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<h1>This is Sparta!</h1> 
 
<div class="container"> 
 
    <div class="row"> 
 
    <div class="col-xs-4"> 
 
     <div class="services__text">Title Text Here</div> 
 
     <img src="https://image.ibb.co/hccDVF/sample.jpg" class="img-responsive" alt="" /> 
 
    </div> 
 
    <div class="col-xs-4"> 
 
     <div class="services__text">Title Text Here</div> 
 
     <img src="https://image.ibb.co/hccDVF/sample.jpg" class="img-responsive" alt="" /> 
 
    </div> 
 
    <div class="col-xs-4"> 
 
     <div class="services__text">Title Text Here</div> 
 
     <img src="https://image.ibb.co/hccDVF/sample.jpg" class="img-responsive" alt="" /> 
 
    </div> 
 
    </div> 
 
</div>

+0

タイトルが「タイトルテキストここ」よりも長い場合、整列はオフになります。そしてそれがより短い時。 – AJMaxwell

+0

@AJMaxwellこれを確認するjsFiddle https://jsfiddle.net/yLvvnr56/、それは本当に幅を追加する必要があります。service__textは同じ位置にテキストを保持し、必要に応じて追加できるようにするが、親要素に隠れているオーバーフローを追加しているので、jsFiddleで拡大縮小するとテキストの一部が非表示になってしまう特定の画面解像度で同じ位置OPはメディアクエリを使用する必要があります。これを行うための2つの方法がありました。主に回転した要素でうまく動作します。 – frnt

1

クラス.service_text

top:20px; left:-126px; position:absolute; 

のためにあなたのコードで以下のCSSプロパティを追加し、 class="col-xs-4 parent"ようとCSS次parentアドオンのためにあなたのclass="col-xs-4"にクラスを追加します。 position: relative; padding-left: 8px;

これは全く同じ結果を与えます。さらに詳しい説明が必要な場合は、そのことをお手伝いしたいと思います。

1

この方法は、1行であればどんな長さのテキストでも機能します。

.services__text { 
    position:absolute; 
    transform: rotate(-90deg) translate(-100%); 
    transform-origin: left top; 
    width:100%; 
    left:-8px; 
    text-align:right; 
} 
  • translate(-100%)(下)の左側に要素をその幅の100%を新しい位置に移動させます。
  • width:100%;あなたのタイトルルームを拡張します。これは、要素の高さです。
  • text-align:right;
  • は画像
  • position:absolute; & left:-8px;トップにテキストをプッシュし、画像の外にテキストをプッシュ(おそらく重複他の要素)
2

チャンプねえ、あなたが解決することがありますCSS

.services__text { 
 
    position: absolute; 
 
    text-align: right; 
 
    -moz-transform: rotate(-90deg) translate(-100%, -100%); 
 
    -webkit-transform: rotate(-90deg) translate(-100%, -100%); 
 
    -o-transform: rotate(-90deg) translate(-100%, -100%); 
 
    -ms-transform: rotate(-90deg) translate(-100%, -100%); 
 
    transform: rotate(-90deg) translate(-100%, -100%); 
 
    -ms-transform-origin: left top; 
 
    -webkit-transform-origin: left top; 
 
    transform-origin: left top; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 
<h1>This is Sparta!</h1> 
 
<div class="container"> 
 
    <div class="row"> 
 
    <div class="col-xs-4"> 
 
     <div class="services__text">Title Text Here</div> 
 
     <img src="https://image.ibb.co/hccDVF/sample.jpg" class="img-responsive" alt="" /> 
 
    </div> 
 
    <div class="col-xs-4"> 
 
     <div class="services__text">Title Text Here</div> 
 
     <img src="https://image.ibb.co/hccDVF/sample.jpg" class="img-responsive" alt="" /> 
 
    </div> 
 
    <div class="col-xs-4"> 
 
     <div class="services__text">Title Text Here</div> 
 
     <img src="https://image.ibb.co/hccDVF/sample.jpg" class="img-responsive" alt="" /> 
 
    </div> 
 
    </div> 
 
</div>
を次のように問題

+0

ありがとうございます。私はrntで与えられたコードを使用しています:) –

関連する問題