小编fli*_*ght的帖子

我如何*真正*证明HTML + CSS中的水平菜单?

你在HTML中的菜单栏上找到了很多教程,但是对于这个特定的(虽然是IMHO泛型)案例,我还没有找到任何合适的解决方案:

#  THE MENU ITEMS    SHOULD BE    JUSTIFIED     JUST AS    PLAIN TEXT     WOULD BE  #
#  ^                                                                             ^  #
Run Code Online (Sandbox Code Playgroud)
  • 有不同数量的纯文本菜单项,页面布局流畅.
  • 第一个菜单项应左对齐,最后一个菜单项应右对齐.
  • 其余项目应在菜单栏上以最佳方式传播.
  • 数量是变化的,因此没有机会预先计算最佳宽度.

请注意,TABLE也不适用于此:

  • 如果您居中所有TD,则第一个和最后一个项目未正确对齐.
  • 如果你左对齐并右对齐第一个resp.最后的项目,间距将是次优的.

使用HTML和CSS以干净的方式实现这一点并不是很奇怪吗?

html css

85
推荐指数
4
解决办法
8万
查看次数

你如何在鼠标悬停时交换DIV?(jQuery的?)

这是第二个最简单的翻转效果,但我找不到任何简单的解决方案.

通缉:我有一个项目列表和幻灯片列表(DIV).加载后,应选择第一个列表项(粗体),并且第一个幻灯片应该是可见的.当用户将鼠标悬停在另一个列表项上时,应该选择该列表项并显示相应的幻灯片.

以下代码有效,但很糟糕.我怎样才能以优雅的方式获得这种行为?jquery有几十个动画和复杂的翻转效果,但我没有想出一个干净的方式来实现这种效果.

<script type="text/javascript">
function switchTo(id) {
    document.getElementById('slide1').style.display=(id==1)?'block':'none';
    document.getElementById('slide2').style.display=(id==2)?'block':'none';
    document.getElementById('slide3').style.display=(id==3)?'block':'none';
    document.getElementById('slide4').style.display=(id==4)?'block':'none';
    document.getElementById('switch1').style.fontWeight=(id==1)?'bold':'normal';
    document.getElementById('switch2').style.fontWeight=(id==2)?'bold':'normal';
    document.getElementById('switch3').style.fontWeight=(id==3)?'bold':'normal';
    document.getElementById('switch4').style.fontWeight=(id==4)?'bold':'normal';
}
</script>

<ul id="switches">
  <li id="switch1" onmouseover="switchTo(1);" style="font-weight:bold;">First slide</li>
  <li id="switch2" onmouseover="switchTo(2);">Second slide</li>
  <li id="switch3" onmouseover="switchTo(3);">Third slide</li>
  <li id="switch4" onmouseover="switchTo(4);">Fourth slide</li>
</ul>
<div id="slides">
  <div id="slide1">Well well.</div>
  <div id="slide2" style="display:none;">Oh no!</div>
  <div id="slide3" style="display:none;">You again?</div>
  <div id="slide4" style="display:none;">I'm gone!</div>
</div>
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery

17
推荐指数
3
解决办法
4万
查看次数

Python对象作为ctypes回调函数中的userdata

C函数myfunc在更大的数据块上运行.结果以块的形式返回给回调函数:

int myfunc(const char *data, int (*callback)(char *result, void *userdata), void *userdata);
Run Code Online (Sandbox Code Playgroud)

使用ctypes,myfunc从Python代码调用并将结果返回给Python回调函数没什么大不了的.这个回调工作正常.

myfunc = mylib.myfunc
myfunc.restype = c_int
myfuncFUNCTYPE = CFUNCTYPE(STRING, c_void_p)
myfunc.argtypes = [POINTER(c_char), callbackFUNCTYPE, c_void_p]

def mycb(result, userdata):
    print result
    return True

input="A large chunk of data."
myfunc(input, myfuncFUNCTYPE(mycb), 0)
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法将Python对象(比如列表)作为用户数据提供给回调函数?为了存储结果块,我想做例如:

def mycb(result, userdata):
    userdata.append(result)

userdata=[]
Run Code Online (Sandbox Code Playgroud)

但我不知道如何将Python列表转换为c_void_p,以便可以在调用myfunc时使用它.

我目前的解决方法是将链表实现为ctypes结构,这非常麻烦.

python ctypes callback user-data

10
推荐指数
1
解决办法
3299
查看次数

标签 统计

css ×2

html ×2

callback ×1

ctypes ×1

javascript ×1

jquery ×1

python ×1

user-data ×1