2017-12-19 27 views
4

現在のCSSグリッドの例では、二重の罫線を避けるためにどのように罫線を崩すことができますか?CSS Grid border collapse

これは、HTMLテーブルを使用して達成するのは簡単なことです。 display: gridを使用してどうすればよいですか?

.wrapper { 
 
    display: grid; 
 
    grid-template-columns: 50px 50px 50px 50px; 
 
} 
 

 
.wrapper > div { 
 
    padding: 15px; 
 
    text-align: center; 
 
    border: 1px solid black; 
 
}
<div class="wrapper"> 
 
    <div>1</div> 
 
    <div>2</div> 
 
    <div>3</div> 
 
    <div>4</div> 
 
    <div>5</div> 
 
    <div>6</div> 
 
    <div>7</div> 
 
    <div>8</div> 
 
</div>

答えて

4

.wrapper { 
 
    display: inline-grid; 
 
    grid-template-columns: 50px 50px 50px 50px; 
 
    border-bottom: 1px solid black; 
 
    border-left: 1px solid black; 
 
} 
 

 
.wrapper > div { 
 
    padding: 15px; 
 
    text-align: center; 
 
    border-top: 1px solid black; 
 
    border-right: 1px solid black; 
 
}
<div class="wrapper"> 
 
    <div>1</div> 
 
    <div>2</div> 
 
    <div>3</div> 
 
    <div>4</div> 
 
    <div>5</div> 
 
    <div>6</div> 
 
    <div>7</div> 
 
    <div>8</div> 
 
</div>

+0

はい意味があります。 – klugjo

+0

この回答は、非実線と半透明の境界線で効果的です。ただし、セル項目は49pxです。これは少し迷惑になる可能性があります。それは簡単に修正可能です。 –

2

.wrapper { 
 
    display: grid; 
 
    grid-template-columns: 50px 50px 50px 50px; 
 
} 
 

 
.wrapper > div { 
 
    padding: 15px; 
 
    text-align: center; 
 
    border: 1px solid black; 
 
    margin:0 -1px -1px 0; 
 
}
<div class="wrapper"> 
 
    <div>1</div> 
 
    <div>2</div> 
 
    <div>3</div> 
 
    <div>4</div> 
 
    <div>5</div> 
 
    <div>6</div> 
 
    <div>7</div> 
 
    <div>8</div> 
 
</div>

margin:0 -1px -1px 0; 

これはトリックを行う必要があります。

あなたはこのように行うことが
+0

種類のgrid-gapを使用することはできますが、少なくともそれはトリックはありません。これを行う簡単な方法がないと信じられません。私はフレックスボックスで私のグリッドを構築するかもしれません.. – klugjo

1

代わりのグリッド項目間の境界線を使用して、コンテナとgrid-gap財産上の背景色を使用します。

.wrapper { 
 
    display: inline-grid; 
 
    grid-template-columns: 50px 50px 50px 50px; 
 
    border: 1px solid black; 
 
    grid-gap: 1px; 
 
    background-color: black; 
 
} 
 

 
.wrapper > div { 
 
    background-color: white; 
 
    padding: 15px; 
 
    text-align: center; 
 
}
<div class="wrapper"> 
 
    <div>1</div> 
 
    <div>2</div> 
 
    <div>3</div> 
 
    <div>4</div> 
 
    <div>5</div> 
 
    <div>6</div> 
 
    <div>7</div> 
 
    <div>8</div> 
 
</div>

+1

素晴らしい、私はその1つを試してみましょう – klugjo

-2

はハックのこの

.wrapper { 
 
    display: inline-grid; 
 
    grid-template-columns: 50px 50px 50px 50px; 
 
    grid-gap: 1px; 
 
    background-color: #000; 
 
    border: 1px solid #000; 
 
} 
 

 
.wrapper > div { 
 
    padding: 15px; 
 
    text-align: center; 
 
    background-color: #fff; 
 
}
<div class="wrapper"> 
 
    <div>1</div> 
 
    <div>2</div> 
 
    <div>3</div> 
 
    <div>4</div> 
 
    <div>5</div> 
 
    <div>6</div> 
 
    <div>7</div> 
 
    <div>8</div> 
 
</div>

+2

と同じ@Michael_B答え。しかし、ありがとう – klugjo