2017-10-06 63 views
1

在这种情况下,如何简单地更改flex框中的文本对齐?flexbox中的垂直和水平文本对齐

我想将文本与flex-start对齐,但出现了问题,我不明白是什么。我认为主要风格不会改变,或者在这种情况下我需要使用别的东西,而不是align-items。我需要将所有文本(md-card-titlemd-card-subtitle,md-card-content)与flex-start对齐。

goods.component.css

md-card { 
    display: flex; 
    flex-direction: column; 
    justify-content: space-around; 
    align-items: stretch; 
    width: 500px; 
    margin-top: 25px; 
    margin-bottom: 25px; 
} 

md-card-title { 
    font-size: 32px; 
    align-items: flex-start; 
    justify-content: flex-start; 
} 

md-card-subtitle { 
    align-items: flex-start; 
    justify-content: flex-start; 
} 

md-card-content { 
    align-items: flex-start; 
    justify-content: flex-start; 
} 

md-grid-tile { 
    align-items: flex-start; 
    justify-content: flex-start; 
} 

h1 { 
    color: #673ab7; 
    text-align:center; 
    margin: 1em 0 0.5em 0; 
    font-weight: 100; 
    text-transform: uppercase; 
    font-style: italic; 
    font-family: 'Josefin Sans', sans-serif; 
    font-size: 58px; 
    line-height: 54px; 
    text-shadow: 2px 5px 0 rgba(0,0,0,0.2); 
} 

a { 
    font-size: 24px; 
    text-decoration: none; 
    color: #673ab7; 
} 

.price-content{ 
    font-size: 18px; 
    background: #00bd0d; 
    float: left; 
    height: 22px; 
    line-height: 22px; 
    padding: 0px 9px 0px 9px; 
    color: #ffffff; 
    margin-bottom: 8px; 
} 

goods.component.html

<h1>All goods</h1> 
<md-card> 
<md-grid-list cols="3" rowHeight="3:1"> 
    <md-grid-tile [colspan]="1" [rowspan]="3"> 
     <img md-card-image src='./assets/image/001.jpeg' alt='picture'> 
    </md-grid-tile> 
    <md-grid-tile [colspan]="2" [rowspan]="1"> 
     <md-card-title><a [routerLink]='["/goods"]'>Audi A8</a></md-card-title> 
    </md-grid-tile> 
    <md-grid-tile [colspan]="2" [rowspan]="1"> 
     <md-card-subtitle>Description Description Description Description Description Description Description Description Description</md-card-subtitle> 
    </md-grid-tile> 
    <md-grid-tile [colspan]="2" [rowspan]="1"> 
     <md-card-content class="price-content">50000 $</md-card-content> 
    </md-grid-tile> 
</md-grid-list> 
</md-card> 
+0

请解释你得到了什么和你的期望。 – Algiz

+0

我把所有的文字都放在了中心区域。想要将其更改为flex-start –

回答

0

由于justify-content/align-items属性用于/柔性容器设置,这些属性元素还需要dispay: flex,否则他们不会有任何效果。

而且在这种情况下,这4条规则

md-card-title 
md-card-subtitle 
md-card-content 
md-grid-tile 

一些使用并不需要设置的属性,因为它是它们的默认值(见CSS注释)

堆栈片断

md-card { 
 
    display: flex; 
 
    flex-direction: column; 
 
    justify-content: space-around;  
 
    /*align-items: stretch;     not needed, default */ 
 
    width: 500px; 
 
    margin-top: 25px; 
 
    margin-bottom: 25px; 
 
} 
 

 
md-card-title { 
 
    font-size: 32px; 
 
    display: flex;      /* added */ 
 
    align-items: flex-start; 
 
    /*justify-content: flex-start;   not needed, default */ 
 
} 
 

 
md-card-subtitle { 
 
    display: flex;      /* added */ 
 
    align-items: flex-start; 
 
    /*justify-content: flex-start;   not needed, default */ 
 
} 
 

 
md-card-content { 
 
    display: flex;      /* added */ 
 
    align-items: flex-start; 
 
    /*justify-content: flex-start;   not needed, default */ 
 
} 
 

 
md-grid-tile { 
 
    display: flex;      /* added */ 
 
    align-items: flex-start; 
 
    /*justify-content: flex-start;   not needed, default */ 
 
} 
 

 
h1 { 
 
    color: #673ab7; 
 
    text-align:center; 
 
    margin: 1em 0 0.5em 0; 
 
    font-weight: 100; 
 
    text-transform: uppercase; 
 
    font-style: italic; 
 
    font-family: 'Josefin Sans', sans-serif; 
 
    font-size: 58px; 
 
    line-height: 54px; 
 
    text-shadow: 2px 5px 0 rgba(0,0,0,0.2); 
 
} 
 

 
a { 
 
    font-size: 24px; 
 
    text-decoration: none; 
 
    color: #673ab7; 
 
} 
 

 
.price-content{ 
 
    font-size: 18px; 
 
    background: #00bd0d; 
 
    float: left; 
 
    height: 22px; 
 
    line-height: 22px; 
 
    padding: 0px 9px 0px 9px; 
 
    color: #ffffff; 
 
    margin-bottom: 8px; 
 
}
<h1>All goods</h1> 
 
<md-card> 
 
    <md-grid-list cols="3" rowHeight="3:1"> 
 
    <md-grid-tile [colspan]="1" [rowspan]="3"> 
 
     <img md-card-image src='./assets/image/001.jpeg' alt='picture'> 
 
    </md-grid-tile> 
 
    <md-grid-tile [colspan]="2" [rowspan]="1"> 
 
     <md-card-title><a [routerLink]='["/goods"]'>Audi A8</a></md-card-title> 
 
    </md-grid-tile> 
 
    <md-grid-tile [colspan]="2" [rowspan]="1"> 
 
     <md-card-subtitle>Description Description Description Description Description Description Description Description Description</md-card-subtitle> 
 
    </md-grid-tile> 
 
    <md-grid-tile [colspan]="2" [rowspan]="1"> 
 
     <md-card-content class="price-content">50000 $</md-card-content> 
 
    </md-grid-tile> 
 
    </md-grid-list> 
 
</md-card>

+0

添加但没有任何更改。看看它的作用,但我不明白为什么它不起作用。我认为一些风格不适用。 Mayby一些默认样式.mat-grid-tile .mat-figure {} - 我在页面上看到的这种样式,如果我改变它,它会工作。但我不明白是我发现这个文件的位置( –

0

的Flexbox将仅适用于直接子元素。您尝试将“Flexbox-Area”之外的元素对齐。该md-grid-list还需要display: flex;

+0

也要添加,但结果是一样的。 “块”中的文本对齐中心 –