質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.93%

overflow:hidden;で表示が消える範囲を目的のclassの範囲で消えるように設定したい

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 230

gumin

score 4

overflow:hidden;の範囲について確認させてください。
今class="tel-line"の範囲にoverflow:hidden;を設定しております。
"tel-line"の疑似属性(before,after)に線をつけて、transitionをつけて動かすようにしたのですが、動かした線がtel-lineの範囲をこえた時、表示を消そうと思ったのに消えない状態です。
どのような指定をすれば、tel-lineの範囲外出たときに表示が消えるようになるでしょうか?

※"Tel"項目がうまくいってない状態です。"Contact"項目はclass="mail"の範囲で、範囲外に出たときに表示消えております。
※CSS必要なさそうな範囲も載せており、読みづらいかと思いますが、本当に不必要か判断できないため、すべて載せました。どうぞよろしくお願いいたします。

<div class="common-footer">
  <div class="inquiry">
  <div class="contact">お問い合わせはこちら</div>
  <div class="information">
      <div class="mail"><p class="inquiry-title">Contact<br/>us</p></div>
      <div class="telephone"><p class="inquiry-title"><span class="tel-line">Tel</span></p><p class="tel-info">000-0000-0000</p><p class="recept-time">受付時間:平日 10:00~17:00<br/>定休日:土曜・日曜・祝日・年末年始</p></div>
  </div> 
</div>
</div>
/* footer */
.common-footer{
    background: #027;
    color: #fff;
    width: 100%;
    padding:7%
}
.inquiry{
    margin-right:10%;
    width: 600px;
    margin-left: auto;
}
.information{
    display:flex;
}
.contact{
    padding-bottom:60px;
    margin-right: 20%;
    text-align:center;
}
.mail{
    margin-right:30px;
    position: relative;
}
.telephone{
    position: relative;
    margin-left:30px;
}
.inquiry-title{
    font-size: 72px;
    line-height: 66px;
    margin-bottom:5px;
}
.tel-line{
    position: relative;
}
.tel-info{
    font-size:16px;
}
.recept-time{
    font-size:10px;
}
/* footer-underline */
.mail::before, .telephone .tel-line::before{
    display:block;
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 1px;
    background: #fff;
    transition: all .4s;
}
.mail:hover::before, .telephone:hover .tel-line::before {
    transform:translate3d(119%,0,0);
}
.mail:hover::after, .telephone:hover .tel-line::after {
    transform:translate3d(0,0,0)
}    
@media screen and (min-width:768px) {
    .mail, .telephone .tel-line{
        overflow:hidden;
    }
    .mail::before, .telephone .tel-line::before{
        width:100%;
        bottom:0
    }
    .mail::after, .telephone .tel-line::after{
        display:block;
        content:'';
        width:100%;
        height:1px;
        bottom:-7px;
        left:0;
        position:absolute;
        background-color:#fff;
        transition:all .4s;
        transition-delay:.1s;
        transform:translate3d(-100%,0,0)
    }
}
@media screen and (max-width:768px) {
    .mail::after, .telephone .tel-line::after {
        display:none;
    }
}
@media screen and (min-width:768px) {
    .mail::after, .telephone .tel-line::after{
        width:100%;
        bottom:0;
    }
}
.telephone .tel-line::before, .telephone .tel-line::after{
    top:1.1em;
}
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • -millmill-

    2020/07/06 19:00

    なさりたいのは、mail と telephoneの
    「<p class="inquiry-title">に下線をかけて動かして、範囲外で消したい」
    という事でしょうか?

    提示されたソースでは
    <span class="tel-line">はblocklevelではないので
    tel-lineへのtransformが効いておらず
    mail の下線が telephone に移動しているだけのように見えますが、、、

    キャンセル

  • gumin

    2020/07/07 10:14

    質問確認していただきありがとうございます!

    >「<p class="inquiry-title">に下線をかけて動かして、範囲外で消したい」
    >という事でしょうか?
    <p class="inquiry-title">の範囲だと下線が長いと感じてしまったため、<span class="tel-line">の範囲で下線を消して範囲外で消したいと考えておりました。

    ><span class="tel-line">はblocklevelではないので
    >tel-lineへのtransformが効いておらず
    >mail の下線が telephone に移動しているだけのように見えますが、、、
    block要素等基本的な知識への理解が浅く、初心者レベルの質問をしてしまうのですが、疑似クラスはブロックレベルにしか付与できないのでしょうか?(今軽くネットで調べたのですがよくわからず申し訳ないです…)

    キャンセル

回答 1

checkベストアンサー

0

overflowはインライン要素には適用されないので、ブロック要素かインラインブロック要素に当てる必要があります。
.tel-lineにdisplay:block;を当てると少し面倒なので、その上の.inquiry-titleに当てるほうが簡単です。

.telephone > .inquiry-title {
    overflow: hidden;
    display: block;
}


これで実現したい動きはできると思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/22 12:38

    ありがとうございます!助かりました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.93%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る