2017-08-07 57 views
0

我正尝试建立使用SASS简单的网格系统:HTML SASS简单的网格系统不能正常工作

app.scss:

.row, 
.col { 
    box-sizing: border-box; 
} 

.row:before, 
.row:after { 
    content: " "; 
    display: table; 
} 

.row:after { 
    clear: both; 
} 

.col { 
    position: relative; 
    float: left; 
} 

.col + .col { 
    margin-left: 1.6%; 
} 

.col-1 { 
    width: 6.86666666667%; 
} 

.col-2 { 
    width: 15.3333333333%; 
} 

.col-3 { 
    width: 23.8%; 
} 

.col-4 { 
    width: 32.2666666667%; 
} 

.col-5 { 
    width: 40.7333333333%; 
} 

.col-6 { 
    width: 49.2%; 
} 

.col-7 { 
    width: 57.6666666667%; 
} 

.col-8 { 
    width: 66.1333333333%; 
} 

.col-9 { 
    width: 74.6%; 
} 

.col-10 { 
    width: 83.0666666667%; 
} 

.col-11 { 
    width: 91.5333333333%; 
} 

.col-12 { 
    width: 100%; 
} 

@media only screen and (max-width: 550px) { 
    .col-1, 
    .col-2, 
    .col-3, 
    .col-4, 
    .col-5, 
    .col-6, 
    .col-7, 
    .col-8, 
    .col-9, 
    .col-10, 
    .col-11, 
    .col-12 { 
    width: auto; 
    float: none; 
    } 

    .col + .col { 
    margin-left: 0; 
    } 
} 


// Body 
body { 
    font-family: $default-font; 
    font-weight: normal; 
    font-size: 13px; 
    color: $text-default; 
} 

.app { 
    width: auto; 
    height: 100%; 
    border-style: outset; 
    border-width: 1px; 
    padding: 5px; 
} 

头-container.scss:

@import '../App/App.scss'; 

.header-container { 
    border-style: outset; 
    border-width: 1px; 
    border-radius: 5px; 
    padding: 10px; 
} 

我的HTML:

<header className='header-container'> 
    <div className='row'> 
     <div className='col-2'> 
      <p>Person 1</p> 
     </div> 
     <div className='col-2'> 
      <p>Person 2</p> 
     </div> 
    </div> 
</header> 

Person 1出现在Person 2的上方,不在我身边,因为我期望网格工作。我找不到有什么问题,但我认为我错过了一些基本的东西。帮助赞赏。

+0

你有没有尝试将div设置为'display:table;'就像你有':before'和':after' set? – freginold

回答

1

你错过了在列元素

.row, .col { 
 
    box-sizing: border-box; 
 
} 
 

 
.row:before, .row:after { 
 
    content: " "; 
 
    display: table; 
 
} 
 

 
.row:after { 
 
    clear: both; 
 
} 
 

 
.col { 
 
    position: relative; 
 
    float: left; 
 
} 
 

 
.col + .col { 
 
    margin-left: 1.6%; 
 
} 
 

 
.col-1 { 
 
    width: 6.86666666667%; 
 
} 
 

 
.col-2 { 
 
    width: 15.3333333333%; 
 
} 
 

 
.col-3 { 
 
    width: 23.8%; 
 
} 
 

 
.col-4 { 
 
    width: 32.2666666667%; 
 
} 
 

 
.col-5 { 
 
    width: 40.7333333333%; 
 
} 
 

 
.col-6 { 
 
    width: 49.2%; 
 
} 
 

 
.col-7 { 
 
    width: 57.6666666667%; 
 
} 
 

 
.col-8 { 
 
    width: 66.1333333333%; 
 
} 
 

 
.col-9 { 
 
    width: 74.6%; 
 
} 
 

 
.col-10 { 
 
    width: 83.0666666667%; 
 
} 
 

 
.col-11 { 
 
    width: 91.5333333333%; 
 
} 
 

 
.col-12 { 
 
    width: 100%; 
 
} 
 

 
@media only screen and (max-width: 550px) { 
 
    .col-1, 
 
    .col-2, 
 
    .col-3, 
 
    .col-4, 
 
    .col-5, 
 
    .col-6, 
 
    .col-7, 
 
    .col-8, 
 
    .col-9, 
 
    .col-10, 
 
    .col-11, 
 
    .col-12 { 
 
    width: auto; 
 
    float: none; 
 
    } 
 

 
    .col + .col { 
 
    margin-left: 0; 
 
    } 
 
} 
 

 
// Body 
 
body { 
 
    font-family: $default-font; 
 
    font-weight: normal; 
 
    font-size: 13px; 
 
    color: $text-default; 
 
} 
 

 
.app { 
 
    width: auto; 
 
    height: 100%; 
 
    border-style: outset; 
 
    border-width: 1px; 
 
    padding: 5px; 
 
} 
 

 
.header-container { 
 
    border-style: outset; 
 
    border-width: 1px; 
 
    border-radius: 5px; 
 
    padding: 10px; 
 
}
<header class='header-container'> 
 
    <div class='row'> 
 
    <div class='col col-2'> 
 
     <p>Person 1</p> 
 
    </div> 
 
    <div class='col col-2'> 
 
     <p>Person 2</p> 
 
    </div> 
 
    </div> 
 
</header>

+0

What a col%$#@%$ !!!!谢谢! – Mendes

+0

@Mendes哈哈欢迎:) –

0

现在.col,您col-2类不会让你的div float:left;

两种可能性:

  • 您的类col添加到您的div
  • 您开始设置与colfloat:left;所有类你可以这样来做:[class^="col"] { float:left; }

嗯,我还没有看到你正在使用className而不是class,所以你可以相应地改变它:[className^="col"] { float:left; }