2016-08-29 11 views
1

私は垂直ブートストラップヘッダーパネルを設計しようとしています、と私はほとんど今、ヘッダが垂直しかし、フォントに設定されている。この垂直ブートストラップパネルヘッダー

.panel 
 
{ 
 
    position: relative; 
 
} 
 

 
.panel-default > .panel-leftheading 
 
{ 
 
    color: #333; 
 
    background-color: #f5f5f5; 
 
    border-color: #ddd; 
 
} 
 

 
.panel-primary > .panel-leftheading 
 
{ 
 
    color: #fff; 
 
    background-color: #428bca; 
 
    border-color: #428bca; 
 
} 
 

 
.panel-success > .panel-leftheading 
 
{ 
 
    color: #3c763d; 
 
    background-color: #dff0d8; 
 
    border-color: #d6e9c6; 
 
} 
 

 
.panel-info > .panel-leftheading 
 
{ 
 
    color: #31708f; 
 
    background-color: #d9edf7; 
 
    border-color: #bce8f1; 
 
} 
 

 
.panel-warning > .panel-leftheading 
 
{ 
 
    color: #8a6d3b; 
 
    background-color: #fcf8e3; 
 
    border-color: #faebcc; 
 
} 
 

 
.panel-danger > .panel-leftheading 
 
{ 
 
    color: #a94442; 
 
    background-color: #f2dede; 
 
    border-color: #ebccd1; 
 
} 
 

 
.panel-leftheading 
 
{ 
 
    width: 42px; 
 
    padding: 10px 15px; 
 
    border-right: 1px solid transparent; 
 
    border-bottom: 1px solid transparent; 
 
    border-top-right-radius: 3px; 
 
    border-bottom-left-radius: 3px; 
 
    border-bottom-right-radius: 3px; 
 
    float: left; 
 
    height: 100%; 
 
    position: absolute; 
 
} 
 

 
.panel-lefttitle 
 
{ 
 
    margin-top: 0; 
 
    margin-bottom: 0; 
 
    margin-left: 15px; 
 
    font-size: 16px; 
 
    color: inherit; 
 
    -webkit-transform: rotate(90deg); 
 
    -webkit-transform-origin: left top; 
 
    -moz-transform: rotate(90deg); 
 
    -moz-transform-origin: left top; 
 
    -ms-transform: rotate(90deg); 
 
    -ms-transform-origin: left top; 
 
    -o-transform: rotate(90deg); 
 
    -o-transform-origin: left top; 
 
    transform: rotate(90deg); 
 
    transform-origin: left top; 
 
    position: absolute; 
 
    white-space: nowrap; 
 
} 
 

 
.panel-rightbody 
 
{ 
 
    float: left; 
 
    margin-left: 45px; 
 
    padding: 15px; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<div class="container"> 
 
    <div class="page-header"> 
 
    </div> 
 
    <div class="row"> 
 
    \t <div class="col-md-6"> 
 

 
<div class="panel panel-primary"> 
 
    <div class="panel-leftheading"> 
 
     <h3 class="panel-lefttitle">Panel title</h3> 
 
    </div> 
 
    <div class="panel-rightbody"> 
 
     <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
     <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
     
 
    </div> 
 
    <div class="clearfix"> 
 
    </div> 
 
</div> 
 

 
    </div> 
 
</div>

を使用して、それを達成していますアラインメントは期待通りではありません。ヘッダーのフォントが読めるべきであり、この画像私は変更する必要がどのようなCSS

vertical Panel Bootstrap

のような水平でなければなりませんか?

.panel-lefttitle { 
    margin-top: 0; 
    margin-bottom: 0; 
    font-size: 16px; 
    color: inherit; 
    white-space: pre-wrap; 
    word-wrap: break-word; 
    text-align: center; 
    width: 0; 
} 

はまたword-wrap: break-wordに追加されている点に注意してください。

答えて

1

あなたが得る効果をtransform sおよびmargin-leftを除去するために(ここでは16pxに)font-sizeより小さいwidth(ここでは0としてセット)を追加することができます空白/改行を縦方向に保存するためのテキストはwhite-space: pre-wrapです。

.panel { 
 
    position: relative; 
 
} 
 
.panel-default > .panel-leftheading { 
 
    color: #333; 
 
    background-color: #f5f5f5; 
 
    border-color: #ddd; 
 
} 
 
.panel-primary > .panel-leftheading { 
 
    color: #fff; 
 
    background-color: #428bca; 
 
    border-color: #428bca; 
 
} 
 
.panel-success > .panel-leftheading { 
 
    color: #3c763d; 
 
    background-color: #dff0d8; 
 
    border-color: #d6e9c6; 
 
} 
 
.panel-info > .panel-leftheading { 
 
    color: #31708f; 
 
    background-color: #d9edf7; 
 
    border-color: #bce8f1; 
 
} 
 
.panel-warning > .panel-leftheading { 
 
    color: #8a6d3b; 
 
    background-color: #fcf8e3; 
 
    border-color: #faebcc; 
 
} 
 
.panel-danger > .panel-leftheading { 
 
    color: #a94442; 
 
    background-color: #f2dede; 
 
    border-color: #ebccd1; 
 
} 
 
.panel-leftheading { 
 
    width: 42px; 
 
    padding: 10px 15px; 
 
    border-right: 1px solid transparent; 
 
    border-bottom: 1px solid transparent; 
 
    border-top-right-radius: 3px; 
 
    border-bottom-left-radius: 3px; 
 
    border-bottom-right-radius: 3px; 
 
    float: left; 
 
    height: 100%; 
 
    position: absolute; 
 
} 
 
.panel-lefttitle { 
 
    margin-top: 0; 
 
    margin-bottom: 0; 
 
    font-size: 16px; 
 
    color: inherit; 
 
    white-space: pre-wrap; 
 
    word-wrap: break-word; 
 
    text-align: center; 
 
    width: 0; 
 
} 
 
.panel-rightbody { 
 
    float: left; 
 
    margin-left: 45px; 
 
    padding: 15px; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 
<div class="container"> 
 
    <div class="page-header"> 
 
    </div> 
 
    <div class="row"> 
 
    <div class="col-md-6"> 
 

 
     <div class="panel panel-primary"> 
 
     <div class="panel-leftheading"> 
 
      <h3 class="panel-lefttitle">Panel title</h3> 
 
     </div> 
 
     <div class="panel-rightbody"> 
 
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
 
      irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
 
      irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 

 
     </div> 
 
     <div class="clearfix"> 
 
     </div> 
 
     </div> 
 

 
    </div> 
 
    </div>

私はこれについてあなたの意見を知ってみましょう。ありがとう!

+0

感謝。どのような方法で達成するのですか? –

+0

'width'を0に設定し、' white-space:pre-wrap'を設定すると、必要なものがあると思いますか? – kukkuz

+0

@ iGyan.Orgはそれに応じて解答を編集しました。それはあなたのために動作するかどうかを確認しますか? – kukkuz

1
  1. <br>要素で手動のスタイリングを使用できますが、これは迷惑になります。

  2. すべての文字を独自の<span>要素にラップできます。これはより快適になりますが、まだ静的すぎます。

  3. cssを使用してください。より正確には、word-wrapを使用してください。そのためには、あなたはそうのようなあなたの.panel-lefttitleスタイリングを調整しました:

    .panel-lefttitle { 
        width: 0; 
        word-break: break-word; 
        margin-top: 0; 
        margin-bottom: 0; 
        font-size: 16px; 
        color: inherit; 
        position: absolute; 
    } 
    

あなたはので、すべての文字が別の行に表示されますwidth:0設定しました。 Live Demo

0

これは参考になるかもしれません。私は各文字をスパン要素に変換し、それぞれを回転させました。それは非常に美しいものではありませんが、これがどのように解決できるかを示しています。

希望の動作を実現するためにJavaScriptを追加しました。

このコードは、Matt Whippleの回答in this postから(部分的に)来ます。

$(function() { 
 
    $(".panel-lefttitle").html(("<span>" + $(".panel-lefttitle").html().split("").join("</span><span>") + "</span>")); 
 
    $(".panel-lefttitle span").each(function() { 
 
     $(this).css({ 
 
      "-webkit-transform": "rotate(-90deg)", 
 
      "display": "inline-block", 
 
      "letter-spacing": "1em" 
 
     }); 
 
    }); 
 
});
.panel 
 
{ 
 
    position: relative; 
 
} 
 

 
.panel-default > .panel-leftheading 
 
{ 
 
    color: #333; 
 
    background-color: #f5f5f5; 
 
    border-color: #ddd; 
 
} 
 

 
.panel-primary > .panel-leftheading 
 
{ 
 
    color: #fff; 
 
    background-color: #428bca; 
 
    border-color: #428bca; 
 
} 
 

 
.panel-success > .panel-leftheading 
 
{ 
 
    color: #3c763d; 
 
    background-color: #dff0d8; 
 
    border-color: #d6e9c6; 
 
} 
 

 
.panel-info > .panel-leftheading 
 
{ 
 
    color: #31708f; 
 
    background-color: #d9edf7; 
 
    border-color: #bce8f1; 
 
} 
 

 
.panel-warning > .panel-leftheading 
 
{ 
 
    color: #8a6d3b; 
 
    background-color: #fcf8e3; 
 
    border-color: #faebcc; 
 
} 
 

 
.panel-danger > .panel-leftheading 
 
{ 
 
    color: #a94442; 
 
    background-color: #f2dede; 
 
    border-color: #ebccd1; 
 
} 
 

 
.panel-leftheading 
 
{ 
 
    width: 42px; 
 
    padding: 10px 15px; 
 
    border-right: 1px solid transparent; 
 
    border-bottom: 1px solid transparent; 
 
    border-top-right-radius: 3px; 
 
    border-bottom-left-radius: 3px; 
 
    border-bottom-right-radius: 3px; 
 
    float: left; 
 
    height: 100%; 
 
    position: absolute; 
 
} 
 

 
.panel-lefttitle 
 
{ 
 
    margin-top: 0; 
 
    margin-bottom: 0; 
 
    margin-left: 15px; 
 
    font-size: 16px; 
 
    color: inherit; 
 
    -webkit-transform: rotate(90deg); 
 
    -webkit-transform-origin: left top; 
 
    -moz-transform: rotate(90deg); 
 
    -moz-transform-origin: left top; 
 
    -ms-transform: rotate(90deg); 
 
    -ms-transform-origin: left top; 
 
    -o-transform: rotate(90deg); 
 
    -o-transform-origin: left top; 
 
    transform: rotate(90deg); 
 
    transform-origin: left top; 
 
    position: absolute; 
 
    white-space: nowrap; 
 
} 
 

 
.panel-rightbody 
 
{ 
 
    float: left; 
 
    margin-left: 45px; 
 
    padding: 15px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 

 
<div class="container"> 
 
    <div class="page-header"> 
 
    </div> 
 
    <div class="row"> 
 
    \t <div class="col-md-6"> 
 

 
<div class="panel panel-primary"> 
 
    <div class="panel-leftheading"> 
 
     <h3 class="panel-lefttitle">Panel title</h3> 
 
    </div> 
 
    <div class="panel-rightbody"> 
 
     <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
     <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
     
 
    </div> 
 
    <div class="clearfix"> 
 
    </div> 
 
</div> 
 

 
    </div> 
 
</div>

0

私はwidthとあなたのh3marginは、transformを削除し、white-spaceを変更する変更されました。

文字の配置を変更する場合は、text-alignを変更することができます。ここで

はあなたの必要性のためのソリューションです:それは動作しますが、私はパネルとタイトルの間に適切なスペースを見ることができません

.panel { 
 
    position: relative; 
 
} 
 
.panel-default > .panel-leftheading { 
 
    color: #333; 
 
    background-color: #f5f5f5; 
 
    border-color: #ddd; 
 
} 
 
.panel-primary > .panel-leftheading { 
 
    color: #fff; 
 
    background-color: #428bca; 
 
    border-color: #428bca; 
 
} 
 
.panel-success > .panel-leftheading { 
 
    color: #3c763d; 
 
    background-color: #dff0d8; 
 
    border-color: #d6e9c6; 
 
} 
 
.panel-info > .panel-leftheading { 
 
    color: #31708f; 
 
    background-color: #d9edf7; 
 
    border-color: #bce8f1; 
 
} 
 
.panel-warning > .panel-leftheading { 
 
    color: #8a6d3b; 
 
    background-color: #fcf8e3; 
 
    border-color: #faebcc; 
 
} 
 
.panel-danger > .panel-leftheading { 
 
    color: #a94442; 
 
    background-color: #f2dede; 
 
    border-color: #ebccd1; 
 
} 
 
.panel-leftheading { 
 
    width: 42px; 
 
    padding: 10px 15px; 
 
    border-right: 1px solid transparent; 
 
    border-bottom: 1px solid transparent; 
 
    border-top-right-radius: 3px; 
 
    border-bottom-left-radius: 3px; 
 
    border-bottom-right-radius: 3px; 
 
    float: left; 
 
    height: 100%; 
 
    position: absolute; 
 
} 
 
.panel-lefttitle { 
 
    margin-top: 0; 
 
    margin-bottom: 0; 
 
    margin-left: 0px; 
 
    font-size: 16px; 
 
    color: inherit; 
 
    position: absolute; 
 
    white-space: pre-wrap; 
 
    word-wrap: break-word; 
 
    width: 7px; 
 
    line-height: 16px; 
 
    text-align: left; 
 
} 
 
.panel-rightbody { 
 
    float: left; 
 
    margin-left: 45px; 
 
    padding: 15px; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 
<div class="container"> 
 
    <div class="page-header"> 
 
    </div> 
 
    <div class="row"> 
 
    <div class="col-md-6"> 
 

 
     <div class="panel panel-primary"> 
 
     <div class="panel-leftheading"> 
 
      <h3 class="panel-lefttitle">Panel title</h3> 
 
     </div> 
 
     <div class="panel-rightbody"> 
 
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
 
      irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
 
      irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 

 
     </div> 
 
     <div class="clearfix"> 
 
     </div> 
 
     </div> 
 

 
    </div> 
 
    </div>