How to create a circle and a bar that overlap with css?

白昼怎懂夜的黑 提交于 2019-12-04 06:05:16

you could use figure and figcaption to structure your html.

Inline-block, vertical-align and margin to set image aside text

figure {
  margin-left:50px;/* half image width */
  background:black;
  box-shadow:0 0 1px;
  border-radius:3px;
  }
img {
  border-radius:100%;
  position:relative;/* brings it at front, can trigger z-index too */
  box-shadow:-1px 0 1px, 1px 0 1px white ;/* whatever U like */
  vertical-align:middle;
  right:50px;/* move visually from real position */
  margin-right:-40px;/* pull or push text aside */
  }
figcaption {
  display:inline-block;
  vertical-align:middle;
  color:white;
  }
p {
  margin:0;
  }
<figure>
  <img src="http://lorempixel.com/100/100/people/9" />
  <figcaption>
    <p>some text here  10px away from image</p>
    <p>and more</p>
    </figcaption>
  </figure>

The idea is - (1) set margin-left:50px on the container, and margin-left:-50px on the avatar inside. (2) set the bio as a table, so we can use the vertical alignment feature to middle the text.

JSFIDDLE DEMO

body {
    background: silver;
}
.user {
    height: 100px;
    background: #222;
    margin-left: 50px;
}
.avatar {
    float: left;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    box-shadow: 0 0 8px rgba(0, 0, 0, .8);
    margin-left: -50px;
}
.bio {
    display: table;
    height: 100px;
    color: #fff;
}
.bio p {
    display: table-cell;
    vertical-align: middle;
    padding-left: 10px;
    margin: 0;
}
<div class="user">
    <img class="avatar" src="http://i.imgur.com/9pnkFjf.jpg" />
    <div class="bio"><p>John Doe is an anonymous character.</p></div>
</div>

You forgot to absolutely position the title bar.

http://codepen.io/fontophilic/pen/LVzbVM?editors=110

I'm using SCSS in my pen, but here is the compiled css:

.round {
  margin: 2em;
  overflow: hidden;
  width: 150px;
  height: 150px;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
  -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.8);
  -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.8);
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.8);
}

.round img {
  display: block;
  width: 100%;
  height: 100%;
}

.text-bar {
  display: block;
  margin: 2em;
  position: absolute;
  background-color: #000;
  left: 75px;
  top: 0;
  width: 100%;
  height: 150px;
  z-index: -1;
}

.text-bar p {
  position: relative;
  left: 75px;
  color: white;
}
<div class="circle">
</div>


html,body{
  width:100%;
  height:100%;
 }
.circle{
 border-radius:50%;
 width:3em;
 height:3em;
 background-color: red;
 }
.circle:before{
margin-left: 1.5em;
content: " ";
display: block;
position: relative;
background: black;
height: 3em;
width: 500%;
z-index:-1;
}

http://codepen.io/sajrashid/pen/yNzVJz

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!