0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

tailwindで親要素のpaddingを無視

Last updated at Posted at 2024-05-06

よくあるcssで親要素の一番上にpaddingをつけて、全体の端っこに余白を設定するケース。
これに対して子要素のコンポーネントなどで画面いっぱいに表示したいのに、bodyにつけたpaddingのせいで空白が消えない場合、下記で解決できます。

今回はtailwindで検証。

src/app/page.tsx
import { About } from '@/app/components/layouts/About';

export default function Home() {
  return (
      // 親要素に padding で余白が作成されている。
      <main className='w-[375px] px-5'>
        <About />
      </main>
  );
}

下記の子コンポーネントにある <h2> を親要素の px-5 の適用外とし、画面幅いっぱいに表示したい。

src/app/components/layouts/About.tsx
'use client';
import React, { useState } from 'react';

export const About = () => {
  return (
    <div className=''>
      // ↓これ
      <h2 className=''>画面いっぱいに表示したい</h2>
    </div>
  );
};

解決策

src/app/components/layouts/About.tsx
'use client';
import React, { useState } from 'react';

export const About = () => {
  return (
    // ↓マイナスでmarginを設定して余白を相殺
    <div className='-mx-5'>
      // 画面幅いっぱいにするためのスタイル (w-screen は width:100vw; と同じ)
      <h2 className='w-screen'>画面いっぱいに表示したい</h2>
    </div>
  );
};

と言うことで、上記のように画面いっぱいに表示したい要素に対して、`-mx-5'を使用し、marginをマイナスで適用することで親要素のpaddingを相殺することができます。では!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?