如何获得一个插入CSS3框阴影渲染在其子元素的顶部?
问题:
HTML:
- <div id="chatroom">
- <div class="chatmessage"><b>User 1:</b>Test</div>
- <div class="chatmessage"><b>User 2:</b>Test</div>
- <div class="chatmessage"><b>User 1:</b>Test</div>
- <div class="chatmessage"><b>User 2:</b>Test</div>
- </div>
CSS:
- #chatroom{
- border: 1px solid #CCC;
- height: 135px;
- font-size: 0.75em;
- line-height: 1.2em;
- overflow: auto;
- -moz-Box-shadow: inset 0 0px 4px rgba(0,.55);
- -webkit-Box-shadow: inset 0 0px 4px rgba(0,.55);
- }
- .chatmessage{
- padding: 4px 2px;
- }
- .chatmessage b{
- margin-right: 2px;
- }
- .chatmessage:nth-child(2n) {
- background: #EEE;
- }
解决方法
不能直接从css ..(它不是阴影,如果它超过重叠的元素)
你将需要通过添加一个div重叠的html一点,以覆盖阴影。
- <div id="chatroom">
- <div class="chatmessage"><b>User 1:</b>Test</div>
- <div class="chatmessage"><b>User 2:</b>Test</div>
- <div class="chatmessage"><b>User 1:</b>Test</div>
- <div class="chatmessage"><b>User 2:</b>Test</div>
- <div class="shadow"></div>
- </div>
和你的CSS让新的div有阴影..
- #chatroom{
- border: 1px solid #CCC;
- height: 135px;
- font-size: 0.75em;
- line-height: 1.2em;
- overflow: auto;
- position:relative;
- }
- .shadow{
- position:absolute;
- left:0px;
- top:0px;
- right:0px;
- bottom:0px;
- -moz-Box-shadow: inset 0 0px 4px rgba(0,.55);
- }