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?

More than 3 years have passed since last update.

Twitterクローンもどき作成までの過程

Last updated at Posted at 2020-09-21

PC版のTwitterのようなサイトを作ろうと思って調べたことをまとめていきます

#要素をきっちり3分割

target{
 width : calc(100% / 3) ;
}

参考:【CSSで3等分】要素をきっちり三分割するスタイルシートの書き方

#画面サイズ取得
画面取得するには以下を使用する
この取得したサイズに応じて表示する内容を変更したりする
どちらもスクロールサイズを除くサイズ
###縦サイズ

document.documentElement.clientWidth

###横サイズ

document.documentElement.clientWidth

##画面サイズ変更の監視

window.addEventListener('resize',()=>{
  //処理
}

参考:要素のリサイズに応じてイベントを発動する方法
#入力ボックス
入力ボックスはHTML5の contentEditable 属性を使う
この属性をtrueにすると編集できるようになる
inputを使うよりもシンプルな入力画面になる

<div contentEditable="true">入力ボックス</div>

#aの下線部を消す

text-decoration: none;

#Twitterのようなタイムラインの形のテンプレート

<body style="background-color:rgb(54, 3, 3)">
    <div style="background-color: rgb(107, 107, 2);width: 500px;display: inline-flex;">
        <!-- ユーザ情報 -->
        <div style="background-color: rgb(104, 101, 101);">
            <img src="image/bell.png" alt="" style="width: 50px;">
        </div>
        <!-- 投稿内容 -->
        <div style="display: block;">
            <div style="background-color: rgb(109, 65, 65);">あああ</div>
            <div style="background-color: rgb(69, 65, 109);">いいい</div>
            <div style="background-color: rgb(65, 109, 88);">ううう</div>
            <!-- <div contenteditable="true" style="background-color: rgb(65, 109, 88);">ううう</div> -->
        </div>

    </div>

</body>

スクリーンショット 2020-09-19 23.45.22.png

#block要素を上下左中央に配置

.outer{
  position: relative;
}
.inner{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit- transform: translateY(-50%) translateX(-50%);
}

引用:CSSで要素を上下や左右から中央寄せする7つの方法

#フォーカスインとフォーカスアウト
addEventListenerでコントロールするものいいが特定のタグであれば
onfocusonblur属性がいい仕事をしてくれる

属性 説明
onfocus フォーカスしたとき
onblur フォーカスアウトしたとき
<input placeholder="キーワード検索" type="text" onblur="focusOut(this)" onfocus="focus(this)">

thisでその要素自体を取得できる

#文字を中央に持ってくる

<div align="center"><p>中央</p><div>

#部分スクロールを可能にする

<div style="overflow: auto;>

高さ調整も忘れずに

#画像を幅に合わせてトリミング

img {
  width: 250px;
  height: 250px;
  object-fit: cover; /* この一行を追加するだけ! */
}

引用:1行追加でOK!CSSだけで画像をトリミングできる「object-fit」プロパティー

好きな場所でトリミングするときはobject-position: 値 値;を使う

画像の左下でトリミング
object-position: 0 100%;
画像の右下でトリミング
object-position: 100% 100%;

#気になったcssプロパティなど
##flex-basis
コンテンツボックスの寸法を定義スクリーンショット 2020-09-19 23.45.22.png

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?