問題の再現
わかりました、この JSFiddle demoであなたのイメージを複製しようとしました。JSFiddle がダウンしている場合、これは次のようになります。
このために、 abackground-image
と 4px height
onを使用する代わりに.sidebox-top
、単純に4px を使用しましたborder-top
。同一の複製ではありませんが、これは同じ基本的な効果を実現します。
.sidebox-top
要素を隠す
ステップ1
まず、.textwidget
ディバイダ内に含まれる最初の子をターゲットにする必要がありますimg
。img
その後、このスタイリングを他の要素に適用したくimg
ありません。また、コンテナー内の最初の要素でない場合は、スタイリングを適用したくありません。これを行うには、次を使用できます。
.textwidget img:first-child { ... }
ステップ2
.sidebox
次のステップは、上のパディングと の高さの合計に等しい、画像の上パディングと負の上余白を与えることです.sidebox-top
。次に、ウィジェットの背景と同じ色の背景を画像に付けたいと思います:*
.textwidget img:first-child {
background: #fff;
padding-top:14px;
margin-top: -14px;
}
* 注: これは、ウィジェットの背景がウィジェットのコンテナーの背景と同じであり、背景が単色であることを前提としています。background-position
そうでない場合は、パターン化された背景をウィジェットの背景に揃えるためにいろいろ試してみる必要があります。
これから、画像が開始位置と同じ位置に留まりながら、上部の境界線に重なる画像になります。
ステップ 3
3 番目のステップは、全体をカバーすること.sidebox-top
です。これを行うには、選択img
した左右のパディングと負の左右のマージンを、 の左右のパディング.sidebox
とその境界幅の合計に等しくする必要があります。
.textwidget img:first-child {
... /* Styling from Step 2 */
padding-left: 18px;
padding-right: 18px;
margin-left: -19px;
margin-right: -19px;
}
ステップ 4
ステップ 3 は確かに の全体.sidebox-top
をカバーしていますが、 の境界もカバーしています.sidebox
。これを行うには、選択したものに同一の境界線を追加し、これを可能にするためにimg
左右のパディングを減らす必要があります。img
.textwidget img:first-child {
... /* Styling from Step 2 */
padding-left: 17px;
padding-right: 17px;
... /* Margins from Step 3 */
border-left: 1px solid #D9D9D9;
border-right: 1px solid #D9D9D9;
}
最終段階
最後のステップは、上部の境界線を追加してimg
、ウィジェットの境界線を完成させることです。ステップ 4 と同様に、このためには、この境界線を考慮して上部パディングのサイズを縮小する必要があります。
.textwidget img:first-child {
... /* Styling from previous steps */
padding-top: 13px;
border-top: 1px solid #D9D9D9;
}
最終的な JSFiddle デモ。