* { margin: 0; padding: 0; } .clrfix { zoom: 1; } .clrfix:after { content: ''; display: block; height: 0; clear: both; } .box { margin: 120px; font-size: 14px; } .box .model { float: left; width: 144px; border-top: 2px solid #999; position: relative; z-index: 2; } .start { float: left; position: relative; } .start em { width: 14px; height: 14px; border-radius: 50%; background: #999; position: absolute; top: -7px; left: -8px; } .start p { position: absolute; left: -20px; top: -38px; } .end { float: left; position: relative; width: 120px; border-top: 2px solid #ddd; z-index: 0; } .end em { position: absolute; top: -12px; right: 0; } .add { width: 20px; height: 20px; border: 2px solid #ddd; border-radius: 50%; background: #fff; cursor: pointer; } .add:after { content: ''; position: absolute; width: 12px; height: 2px; background: #ddd; top: 50%; margin-top: -1px; left: 50%; margin-left: -6px; } .add:before { content: ''; position: absolute; width: 2px; height: 12px; background: #ddd; top: 50%; margin-top: -6px; left: 50%; margin-left: -1px; } .model small { position: absolute; width: 20px; height: 20px; border: 2px solid #999; right: -2px; background: #fff; border-radius: 50%; margin-top: -12px; cursor: pointer; } .model>p { position: absolute; width: 144px; text-align: center; left: 50%; margin-left: -12px; top: -38px; } .model .already:first-of-type { height: 70px; margin-top: 10px; } .already { width: 120px; position: relative; height: 92px; margin-top: -22px; border: 2px solid #999; left: 72px; border-top: 0; border-radius: 0 0 20px 20px; } .model .already:first-of-type:after { content: ''; position: absolute; width: 20px; height: 20px; border-radius: 50%; border: 2px solid #999; border-color: transparent #999 transparent transparent; transform: rotate(-45deg); top: -12px; left: -24px; } .model .already:first-of-type:before { content: ''; position: absolute; width: 20px; height: 20px; border-radius: 50%; border: 2px solid #999; border-color: transparent #999 transparent transparent; transform: rotate(-135deg); top: -12px; right: -24px; } .model .already:first-of-type p { padding-top: 12px; } .already p { text-align: center; padding-top: 42px } .already span { position: absolute; width: 20px; height: 20px; border: 2px solid #999; bottom: -12px; left: 50%; margin-left: -12px; background: #fff; border-radius: 50%; cursor: pointer; z-index: 2; } .already span.active, .model small.active { border-color: #00a6fb; } .already span.active:before, .model small.active:before { content: ''; width: 14px; height: 14px; border-radius: 50%; position: absolute; top: 50%; left: 50%; background: #00a6fb; transform: translate(-50%, -50%); } .add-model { width: 60px; height: 84px; position: relative; left: 72px; border: 2px solid #ddd; top: -14px; border-color: transparent transparent #ddd #ddd; border-radius: 0 0 0 20px; } .add-model span { position: absolute; bottom: -12px; right: -12px; } .add-model p { width: 120px; text-align: center; padding-top: 32px } .new-add.add-model { height: 68px; top: 10px; } .new-add.add-model:before { content: ''; position: absolute; width: 20px; height: 20px; border-radius: 50%; border: 2px solid #ddd; border-color: transparent #ddd transparent transparent; transform: rotate(-45deg); top: -13px; left: -24px; } .new-add.add-model p { padding-top: 10px; }